我正在Java中使用SpringFramework在使用JdbcTemplate類的Mysql Server上進行數據庫編程。如何正確處理連接空閒超時錯誤
使用org.apache.commons.dbcp.BasicDataSource
作爲db數據源。
有時,當連接閒置時間長,CommunicationException
被拋出以下消息:
The last packet successfully received from the server was XXXXX milliseconds ago.
我不想加入autoReconnect的參數來連接來處理這個問題,或者添加該屬性將在每個查詢之前執行select 1
以確保連接正確打開。我也不想觸摸mysql服務器的配置,並提高超時值。
我想要做的是正確處理該異常。
我想過要抓住CommunicationException
,只是重試,直到成功,如果失敗多了X次,然後拋出一個異常,表明重試X次失敗。
- 沒有人有任何其他想法如何處理這個問題?
- 我的想法如何? :)
- 也許有一些東西在春天框架中爲我自動做到這一點,我錯過了它?
任何信息將不勝感激。
謝謝!
爲什麼你不想使用autoReconnect? – EJP
我讀到autoReconnect參數已被棄用 – ufk
「不建議使用autoReconnect選項,因爲沒有安全的方法重新連接到MySQL服務器,而不會冒損壞連接狀態或數據庫狀態信息的風險,相反,您應該使用連接池,它將使您的應用程序能夠使用池中的可用連接連接到MySQL服務器。autoReconnect功能已被棄用,並且可能在未來版本中被刪除。「,來自http://dev.mysql.com/doc /refman/5.1/en/connector-j-usagenotes-troubleshooting.html#qandaitem-21-3-5-3-1-4 – ptomli