1. 程式人生 > >hibernate自動重新連線資料庫

hibernate自動重新連線資料庫

現在遇到這樣情況,tomcat應用(持久層是hibernate)和資料庫在不同機器上,當資料庫重啟或者出問題或者網路有問題,連線就會中斷。修復以後需要重啟tomcat,否則應用就持續報connection refused錯誤。有何辦法能讓hibernate在知道連線失敗以後自動重新連線資料庫。

在網上查了很多資料都沒有辦法很好的解決,最後更換了連線池,使用proxool

最重要的一個引數設定是

test-before-use: 如果為true,在每個連線被測試前都會服務這個連線,如果一個連線失敗,那麼將被丟棄,另一個連線將會被處理,如果所有連線都失敗,一個新的連線將會被建立。否則將會丟擲一個SQLException異常。

test-after-use: 如果為true,在每個連線被測試後都會服務這個連線,使其回到連線池中,如果連線失敗,那麼將被廢棄。

<house-keeping-test-sql>select 1 from dual</house-keeping-test-sql>測試程式碼

test-before-use: 和test-after-use: 我只選擇了一個,測試了網路在斷網再連通的情況下通過。