#removeAbandoned
true,false,
是否清理
removeAbandonedTimeout
秒沒有使用的活動連接配接
,
清理後并沒
有放回連接配接池
#removeAbandonedTimeout
活動連接配接的最大空閑時間
#logAbandoned true,false,
連接配接池收回空閑的活動連接配接時是否列印消息
testOnBorrow
、
testOnReturn
、
testWhileIdle
,他們的意思是當是取得連接配接、傳回連接配接或連接配接
空閑時是否進行有效性驗證(即是否還和資料庫連通的)
,預設都為
false
。是以當資料庫連
接因為某種原因斷掉後,
再從連接配接池中取得的連接配接,實際上可能是無效的連接配接了,
是以,為
了確定取得的連接配接是有效的,
可以把把這些屬性設為
true
。
當進行校驗時,
需要另一個參數:
validationQuery
,對
oracle
來說,可以是:
SELECT COUNT(*) FROM DUAL
,實際上就是個簡單
的
SQL
語句,驗證時,就是把這個
SQL
語句在資料庫上跑一下而已,如果連接配接正常的,當
然就有結果傳回了。
還有
2
個參數:
timeBetweenEvictionRunsMillis
和
minEvictableIdleTimeMillis
,他們兩個
配合,可以持續更新連接配接池中的連接配接對象,當
timeBetweenEvictionRunsMillis
大于
時,每
過
timeBetweenEvictionRunsMillis
時間,就會啟動一個線程,校驗連接配接池中閑置時間超過
minEvictableIdleTimeMillis
的連接配接對象。
還有其他的一些參數,可以參考源代碼。
部分參數簡要說明:
removeAbandoned
:是否自動回收逾時連接配接
removeAbandonedTimeout
:逾時時間
(
以秒數為機關
)
rmoveAbandoned=true
那麼在
getNumActive()
快要到
getMaxActive()
的時候,
系統會進行無效
的
Connection
的回收,回收的
Connection
為
removeAbandonedTimeout(
預設
300
秒
)
中設定
的秒數後沒有使用的
Connection
logAbandoned
:
logAbandoned=true
的話,
将會在回收事件後,
在
log
中列印出回收
Connection
的錯誤資訊,包括在哪個地方用了
Connection
卻忘記關閉了,在調試的時候很有用。
maxWait
:逾時等待時間以毫秒為機關
maxIdle
:最大空閑連接配接
minIdle
:最小空閑連接配接
maxActive
:最大連接配接數
<
property
name
=
"Pool.PingQuery"
value
=
"select count(id) from
gnet_ss_mail_sending_lock"
/>
<
property
name
=
"Pool.LogAbandoned"
value
=
"true"
/>
<
property
name
=
"Pool.RemoveAbandoned"
value
=
"true"
/>
<
property
name
=
"Pool.RemoveAbandonedTimeout"
value
=
"50000"
/>