tomcat 5.X與tomcat 6.x連接池配置有所不同,這里只是記錄tomcat 6.0的配置過程,
tomcat 6.0配置oracle數(shù)據(jù)庫連接池
。容器:tomcat 6.0
數(shù)據(jù)庫:oracle 10g
操作步驟:
1、
將oracle數(shù)據(jù)庫的驅(qū)動包ojdbc6.jar放到tomcat 6.0/lib,否則運行會報java.lang.ClassNotFoundException異 常,而且你在java Build Path->Libraries->Add JARs把驅(qū)動包加進來也還是會報錯的,一定要把驅(qū)動包加 到tomcat/lib里面來;
2、
在tomcat的配置文件(context.xml)加入數(shù)據(jù)庫連接信息
driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.20.90:1521:carddb" username="card_settle" password="card_settle" maxActive="20" maxIdle="10" maxWait="10000" /> 屬性說明: name,數(shù)據(jù)源名稱,通常取"jdbc/xxx"的格式 auth,這個不需要修改,取默認值 type,值為"javax.sql.DataSource",使用數(shù)據(jù)源的方式 driverClassName,數(shù)據(jù)庫驅(qū)動 url,訪問數(shù)據(jù)庫的路徑信息,carddb是oracle數(shù)據(jù)庫的SID maxActive,連接池的最大數(shù)據(jù)庫連接數(shù),設(shè)為0表示無限制 maxIdle,數(shù)據(jù)庫連接的最大空閑時間,超過空閑時間,數(shù)據(jù)庫連接將被標記為不可用,然后被釋放。設(shè)為0表示無限制 maxWait,最大建立連接等侍時間,如果超過此時間,將接到異常,如果設(shè)為-1表示無限制 3.程序中需要數(shù)據(jù)庫連接的地主,編寫如下代碼: Java代碼 import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DataSourceTest{ public static Connection getCon(){ Connection conn = null; try{ Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/zhx"); conn = ds.getConnection(); }catch(NamingException e){ e.printStackTrace(); } catch(SQLException e){ e.printStackTrace(); } return conn; } } import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DataSourceTest{ public static Connection getCon(){ Connection conn = null; try{ Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/zhx"); conn = ds.getConnection(); }catch(NamingException e){ e.printStackTrace(); } catch(SQLException e){ e.printStackTrace(); } return conn; } } 使用完后,記得要調(diào)用close()方法,它并不是真正地關(guān)閉連接,而是釋放出來,讓它重新回到連接池,電腦資料
《tomcat 6.0配置oracle數(shù)據(jù)庫連接池》(http://www.szmdbiao.com)。
附:
連接池運作原理:
在實際應(yīng)用開發(fā)中,特別是在WEB 應(yīng)用系統(tǒng)中,如果JSP、Servlet 或EJB 使用JDBC 直 接訪問數(shù)據(jù)庫中的數(shù)據(jù),每一次數(shù)據(jù)訪問請求都必須經(jīng)歷建立數(shù)據(jù)庫連接、打開數(shù)據(jù)庫、存取數(shù)據(jù)和關(guān)閉數(shù)據(jù)庫連接等步驟,而連接并打開數(shù)據(jù)庫是一件既消耗資源又費時的工作,如果頻繁發(fā)生這種數(shù)據(jù)庫操作,系統(tǒng)的性能必然會急劇下降,甚至會導致系統(tǒng)崩潰。數(shù)據(jù)庫連接 池技術(shù)是 解決這個問題最常用的方法,在許多應(yīng)用程序服務(wù)器( 例 如 :Weblogic, WebSphere,JBoss)中,基本都提供了這項技術(shù),無需自己編程,但是,深入了解這項技術(shù) 是非常必要的。
數(shù)據(jù)庫連接池技術(shù)的思想非常簡單, 將數(shù)據(jù)庫連接作為對象存儲在一個Vector對象中,一旦數(shù)據(jù)庫連接建立后,不同的數(shù)據(jù)庫訪問請求就可以共享這些連接,這樣,通過復用這些 已經(jīng)建立的數(shù)據(jù)庫連接,可以克服上述缺點,極大地節(jié)省系統(tǒng)資源和時間。
數(shù)據(jù)庫連接池的主要操作如下:
(1)建立數(shù)據(jù)庫連接池對象(服務(wù)器啟動)。
(2)按照事先指定的參數(shù)創(chuàng)建初始數(shù)量的數(shù)據(jù)庫連接(即:空閑連接數(shù))。
(3)對于一個數(shù)據(jù)庫訪問請求,直接從連接池中得到一個連接。如果數(shù)據(jù)庫連接池對象 中沒有空閑的連接,且連接數(shù)沒有達 到最大(即:最大活躍連接數(shù)) ,創(chuàng)建一個新的數(shù)據(jù)庫 連接。 (4)存取數(shù)據(jù)庫。
(5)關(guān)閉數(shù)據(jù)庫,釋放所有數(shù)據(jù)庫連接(此時的關(guān)閉數(shù)據(jù)庫連接,并非真正關(guān)閉,而是將其放入空閑隊列中。如實際空閑連接數(shù)大于初始空閑連接數(shù)則釋放連接)。
(6)釋放數(shù)據(jù)庫連接池對象(服務(wù)器停止、維護期間,釋放數(shù)據(jù)庫連接池對象,并釋放所有連接) 。