生活随笔
收集整理的這篇文章主要介紹了
C3P0,Proxool等连接池的断开自动重联功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
mysql數據庫一般8小時斷開一次;
Proxool:
| 01 | <!--proxool 解決與數據庫斷開重連問題(houseKeepingTestSql為oracle的語法,其他數據庫類似) --> |
| 02 | <property name="houseKeepingTestSql"> |
| 03 | <value>select 1 from dual</value> |
| 05 | <property name="testBeforeUse"> |
| 08 | <property name="testAfterUse"> |
C3P0:
breakAfterAcquireFailure: false
? ? ? ? true表示pool向數據庫請求連接失敗后標記整個pool為block并close,就算后端數據庫恢復正常也不進行重連,客戶端對pool的請求都拒絕掉。false表示不會標記?pool為block,新的請求都會嘗試去數據庫請求connection。默認為false。因此,如果想讓數據庫和網絡故障恢復之后,pool能繼續請求正常資源必須把此項配置設為false?
testConnectionOnCheckout: false
? ? ? ? ?true表示在每次從pool內checkout連接的時候測試其有效性,這是個同步操作,因此應用端的每次數據庫調用,都會先通過測試sql測試其有效性,如果連接無效,會關閉此連接并剔除出pool,并嘗試從pool內取其他連接,默認為false,此特性要慎用,會造成至少多一倍的數據庫調用。?
testConnectionOnCheckin: false
? ? ? ?true表示每次把連接checkin到pool里的時候測試其有效性,因為是個事后操作,所以是異步的,應用端不需要等待測試結果,但同樣會造成至少多一倍的數據庫調用。?
idleConnectionTestPeriod: 60
? ? ? ?C3P0會有一個Task檢測pool內的連接是否正常,此參數就是Task運行的頻率。默認值為0,表示不進行檢測。?
acquireRetryAttempts: 10
? ? ? ?重試次數
acquireRetryDelay: 1000
? ? ? ?重試間隔時間
總結
以上是生活随笔為你收集整理的C3P0,Proxool等连接池的断开自动重联功能的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。