http://tomcat.apache.org/tomcat-7.0-doc/jndi-resources-howto.html#JDBC_Data_Sourceshtml
Tomcat的標準數據源資源工廠(org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory
)的配置屬性以下:數據庫
- driverClassName-要使用的JDBC驅動程序的標準Java類名稱。
- username -要傳遞給咱們的JDBC驅動程序的數據庫用戶名。
- password-要傳遞給咱們的JDBC驅動程序的數據庫密碼。
- url-要傳遞給咱們的JDBC驅動程序的鏈接URL。(爲了向後兼容,
driverName
還能夠識別該屬性。)
- initialSize-在池初始化期間將在池中建立的初始鏈接數。默認值:0
- maxActive-能夠同時今後池分配的最大鏈接數。默認值:8
- minIdle-同時在此池中處於空閒狀態的最小鏈接數。默認值:0
- maxIdle-能夠同時在此池中處於空閒狀態的最大鏈接數。默認值:8
- maxWait-拋出異常以前,池將等待(若是沒有可用鏈接時)返回鏈接的最大毫秒數。默認值:-1(無限)
一些其餘屬性可處理鏈接驗證:apache
- validationQuery-池可用於在將鏈接返回給應用程序以前驗證鏈接的SQL查詢。若是指定,則此查詢必須是返回至少一行的SQL SELECT語句。
- validationQueryTimeout-驗證查詢返回的超時(以秒爲單位)。默認值:-1(無限)
- testOnBorrow-是或否:每次從池中借用鏈接時,是否應該使用驗證查詢來驗證鏈接。默認值:true
- testOnReturn-是或否:每次將鏈接返回到池時是否應使用驗證查詢來驗證鏈接。默認值:false
可選的退出線程負責經過刪除任何長時間處於空閒狀態的鏈接來縮小池。驅逐者不尊重minIdle
。請注意,若是僅但願根據配置的maxIdle
屬性縮小池,則無需激活退出線程。tomcat
逐出器默認狀況下處於禁用狀態,可使用如下屬性進行配置:url
- timeBetweenEvictionRunsMillis-逐次運行兩次之間的毫秒數。默認值:-1(禁用)
- numTestsPerEvictionRun-在每次運行驅逐程序時,驅逐程序將檢查鏈接是否空閒的鏈接數。默認值:3
- minEvictableIdleTimeMillis-空閒時間(以毫秒爲單位),在此時間以後,退出者能夠從池中刪除鏈接。默認值:30 * 60 * 1000(30分鐘)
- testWhileIdle-正確或錯誤:是否應該在空閒狀態下使退出線程使用驗證查詢來驗證鏈接。默認值:false
另外一個可選功能是刪除廢棄的鏈接。若是應用程序長時間不將其返回到池中,則該鏈接稱爲放棄鏈接。池能夠自動關閉此類鏈接並將其從池中刪除。這是應用程序泄漏鏈接的一種解決方法。spa
默認狀況下,放棄功能是禁用的,可使用如下屬性進行配置:線程
- removeAbandoned -true或false:是否從池中刪除廢棄的鏈接。默認值:false
- removeAbandonedTimeout-假定借用的鏈接被放棄以前通過的秒數。默認值:300
- logAbandoned-正確或錯誤:是否爲放棄語句或鏈接的應用程序代碼記錄堆棧跟蹤。這增長了嚴重的開銷。默認值:false
最後,還有各類屬性能夠對池行爲進行進一步的微調:code
- defaultAutoCommit-正確或錯誤:此池建立的鏈接的默認自動提交狀態。默認值:true
- defaultReadOnly-正確或錯誤:此池建立的鏈接的默認只讀狀態。默認值:false
- defaultTransactionIsolation-設置默認事務隔離級別。能夠是一個
NONE
,READ_COMMITTED
, READ_UNCOMMITTED
,REPEATABLE_READ
, SERIALIZABLE
。默認值:未設置默認值
- poolPreparedStatements -true或false:是否合併 PreparedStatements和CallableStatements。默認值:false
- maxOpenPreparedStatements-能夠同時從語句池分配的最大打開語句數。默認值:-1(無限制)
- defaultCatalog-默認目錄的名稱。默認值:未設置
- connectionInitSqls-建立鏈接後,SQL語句列表將運行一次。用分號(
;
)分隔多個語句。默認值:無聲明
- connectionProperties-傳遞給驅動程序以建立鏈接的特定於驅動程序的屬性。每一個屬性均以形式給出
name=value
,多個屬性之間用分號(;
)分隔。默認值:無屬性
- accessToUnderlyingConnectionAllowed-正確或錯誤:是否容許訪問基礎鏈接。默認值:false
有關更多詳細信息,請參考commons-dbcp文檔。htm