天天看點

spring mysql 連接配接池配置_spring 資料庫連接配接池配置

#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"

/>