資料庫連接池
資料庫連接池概述: 資料庫連接是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。對資料庫連接的管理能顯著影響到整個應用程式的伸縮性和健壯性,影響到程式的效能指標。資料庫連接池正是針對這個問題提出來的。 資料庫連接池負責分配、管理和釋放資料庫連接,它允許應用程式重複使用一個現有的資料庫連接,而再不是重建立立一個;釋放空閑時間超過最大空閑時間的資料庫連接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏。這項技術能明顯提高對資料庫操作的效能。 資料庫連接池在初始化時將建立一定數量的資料庫連接放到串連池中,這些資料庫連接的數量是由最小資料庫連接數來設定的。無論這些資料庫連接是否被使用,串連池都將一直保證至少擁有這麼多的串連數量。串連池的最大資料庫連接數量限定了這個串連池能佔有的最大串連數,當應用程式向串連池請求的串連數超過最大串連數量時,這些請求將被加入到等待隊列中。資料庫連接池的最小串連數和最大串連數的設定要考慮到下列幾個因素: 1) 最小串連數是串連池一直保持的資料庫連接,所以如果應用程式對資料庫連接的使用量不大,將會有大量的資料庫連接資源被浪費; 2) 最大串連數是串連池能申請的最大串連數,如果資料庫連接請求超過此數,後面的資料庫連接請求將被加入到等待隊列中,這會影響之後的資料庫操作。 3) 如果最小串連數與最大串連數相差太大,那麼最先的串連請求將會獲利,之後超過最小串連數量的串連請求等價於建立一個新的資料庫連接。不過,這些大於最小串連數的資料庫連接在使用完不會馬上被釋放,它將被放到串連池中等待重複使用或是空閑逾時後被釋放。
Tomcat6.0串連池配置
1.配置tomcat下的conf下的context.xml檔案,在之間添加串連池配置:
<Resource name="jdbc/sample"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SqlserverDriver"
url="jdbc:sqlserver://localhost:8080;databaseName=test"
username="sa"
password="sa"
maxActive="100"
maxIdle="30"
maxWait="10000" />
2.配置你的應用程式下的web.xml中的之間加入:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.把串連資料庫的第三方驅動放到common/lib下面就ok了
4.測試程式(關鍵代碼)
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/sample");
Connection con = ds.getConnection();
以下和JDBC作業碼相同。。。。。。。。