BasicDataSource參數設置

在使用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()使連接返回到連接池
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章