在使用Properties來創建BasicDataSource時,有很多參數可以設置,比較重要的還有:
testOnBorrow、
testOnReturn、testWhileIdle,他們的意思是當是取得連接、返回連接或連接空閒時是否進行有效性
驗證(即是否還和數據庫連通的),默認都爲false。所以當數據庫連接因爲某種原因斷掉後,再從連接池中取得的連接,實際上可能是無效的連接了,所以,
爲了確保取得的連接是有效的,可以把把這些屬性設爲true。當進行校驗時,需要另一個參數:validationQuery,對oracle來說,可以
是:SELECT COUNT(*) FROM
DUAL,實際上就是個簡單的SQL語句,驗證時,就是把這個SQL語句在數據庫上跑一下而已,如果連接正常的,當然就有結果返回了。
還
有2個參數:timeBetweenEvictionRunsMillis 和
minEvictableIdleTimeMillis,他們兩個配合,可以持續更新連接池中的連接對象,當
timeBetweenEvictionRunsMillis 大於0時,每過timeBetweenEvictionRunsMillis
時間,就會啓動一個線程,校驗連接池中閒置時間超過minEvictableIdleTimeMillis的連接對象。
還有其他的一些參數,可以參考源代碼。
部分參數簡要說明:
removeAbandoned :是否自動回收超時連接
removeAbandonedTimeout:超時時間(以秒數爲單位)
rmoveAbandoned=true
那麼在getNumActive()快要到getMaxActive()的時候,系統會進行無效的
Connection的回收,回收的Connection爲removeAbandonedTimeout(默認300秒)中設置的秒數後沒有使用的
Connection
logAbandoned:logAbandoned=true的話,將會在回收事件後,在log中打印出回收Connection的錯誤信息,包括在哪個地方用了Connection卻忘記關閉了,在調試的時候很有用。
maxWait:超時等待時間以毫秒爲單位
maxIdle:最大空閒連接
minIdle:最小空閒連接
maxActive:最大連接數
testOnBorrow、testOnReturn、testWhileIdle、validationQuery:上面有介紹
另外很重要的一點是每次連接使用完了不要忘了調用connection.close()使連接返回到連接池
BasicDataSource參數設置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
HSRP和二層交換機的端口聚合、vlan
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37