1. 程式人生 > >C3P0資料來源連結池bug,mysql閒置一段時間後,第一次連結失敗,第二次連結成功的問題

C3P0資料來源連結池bug,mysql閒置一段時間後,第一次連結失敗,第二次連結成功的問題

mysql8個小時後,第一次連結失敗,第二次連結成功的問題

mysql資料庫的預設連線時長為8個小時

1.互動式連線:使用mysql客戶端進行資料庫連結   interactive_timeout

2.非互動式連線:使用jdbc進行資料庫連結      wait_timeout

使用C3P0時為非互動式連結   wait_timeout繼承了資料庫服務端的wait_timeout的值(預設8個小時)

個人理解:maxIdleTime 是C3P0中用來配置連線的最大空閒時間,若沒有配置default為0,表示連線永遠不會過期,那麼出現了一個問題就是非互動式連線的最大時長是8個小時,而C3P0的連線永不過期,就會出現資料庫的連線過期了,而C3P0的連線不過期,致使bug出現抓狂

。(有不對的地方,請和我說一下,謝謝)

解決方法大笑:將maxIdleTime 配置的值小於wait_timeout即可

<property name="maxIdleTime"  value="5000"/>