dbcp2資料來源配置詳解,dbcp2詳解
DBCP2詳細的配置表常用連結配置
參數 |
描述 |
username |
傳遞給JDBC驅動的用於建立串連的使用者名稱 |
password |
傳遞給JDBC驅動的用於建立串連的密碼 |
url |
傳遞給JDBC驅動的用於建立串連的URL |
driverClassName |
使用的JDBC驅動的完整有效java 類名 |
connectionProperties |
當建立新串連時被發送給JDBC驅動的串連參數,格式必須是 [propertyName=property;]。 注意:參數user/password將被明確傳遞,所以不需要包括在這裡。 |
資料來源串連數量配置
參數 |
預設值 |
描述 |
initialSize |
0 |
初始化串連:串連池啟動時建立的初始化串連數量,1.2版本後支援 |
maxActive |
8 |
最大活動串連:串連池在同一時間能夠分配的最大活動串連的數量, 如果設定為非正數則表示不限制 |
maxIdle |
8 |
最大空閑串連:串連池中容許保持空閑狀態的最大串連數量,超過的空閑串連將被釋放,如果設定為負數表示不限制 |
minIdle |
0 |
最小空閑串連:串連池中容許保持空閑狀態的最小串連數量,低於這個數量將建立新的串連,如果設定為0則不建立 |
maxWait |
無限 |
最大等待時間:當沒有可用串連時,串連池等待串連被歸還的最大時間(以毫秒計數),超過時間則拋出異常,如果設定為-1表示無限等待 |
事務屬性配置
參數 |
預設值 |
描述 |
defaultAutoCommit |
true |
串連池建立的串連的預設的auto-commit狀態 |
defaultReadOnly |
driver default |
串連池建立的串連的預設的read-only狀態. 如果沒有設定則setReadOnly方法將不會被調用.(某些驅動不支援唯讀模式,比如:Informix) |
defaultTransactionIsolation |
driver default |
串連池建立的串連的預設的TransactionIsolation狀態. 下面列表當中的某一個: (參考javadoc) NONE、READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ、SERIALIZABLE |
defaultCatalog |
|
串連池建立的串連的預設的catalog |
資料來源串連健康情況檢查
參數 |
預設值 |
描述 |
validationQuery |
|
SQL查詢,用來驗證從串連池取出的串連,在將串連返回給調用者之前.如果指定,則查詢必須是一個SQL SELECT並且必須返回至少一行記錄 |
testOnBorrow |
true |
指明是否在從池中取出串連前進行檢驗,如果檢驗失敗,則從池中去除串連並嘗試取出另一個. 注意: 設定為true後如果要生效,validationQuery參數必須設定為非Null 字元串 |
testOnReturn |
false |
指明是否在歸還到池中前進行檢驗. 注意: 設定為true後如果要生效,validationQuery參數必須設定為非Null 字元串 |
testWhileIdle |
false |
指明串連是否被空閑串連回收器(如果有)進行檢驗.如果檢測失敗,則串連將被從池中去除. 注意: 設定為true後如果要生效,validationQuery參數必須設定為非Null 字元串 |
timeBetweenEvictionRunsMillis |
-1 |
在空閑串連回收器線程運行期間休眠的時間值,以毫秒為單位.如果設定為非正數,則不運行空閑串連回收器線程 |
numTestsPerEvictionRun |
3 |
在每次空閑串連回收器線程(如果有)運行時檢查的串連數量 |
minEvictableIdleTimeMillis |
10006030 |
串連在池中保持空閑而不被空閑串連回收器線程(如果有)回收的最小時間值,單位毫秒 |
緩衝語句
參數 |
預設值 |
描述 |
poolPreparedStatements |
false |
開啟池的prepared statement 池功能 |
maxOpenPreparedStatements |
不限制 |
statement池能夠同時分配的開啟的statements的最大數量, 如果設定為0表示不限制 |
串連泄露回收
參數 |
預設值 |
描述 |
removeAbandoned |
false |
標記是否刪除泄露的串連,如果他們超過了removeAbandonedTimout的限制.如果設定為true, 串連被認為是被泄露並且可以被刪除,如果空閑時間超過removeAbandonedTimeout. 設定為true可以為寫法糟糕的沒有關閉串連的程式修複資料庫連接. |
removeAbandonedTimeout |
300 |
泄露的串連可以被刪除的逾時值, 單位秒 |
logAbandoned |
false |
標記當Statement或串連被泄露時是否列印程式的stack traces日誌。被泄露的Statements和串連的日誌添加在每個串連開啟或者產生新的Statement,因為需要產生stack trace。 |
注意:
- Java資料庫連接有“8小時問題”,所以destroy-method="close"一定要加上。“8小時問題”是指一個串連空閑8小時資料庫會自動關閉,而資料來源並不知道。
- 高並發下,可以testOnBorrow設定false,testWhileIdle設定為true,這樣就會定時對後台空連結進行檢測發現無用串連就會清除掉,不會每次都去都去檢測是否8小時的空連結。
參考: http://blog.csdn.net/initphp/article/details/8255793
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。