2013-07-16 44 views
0

我已經創建了一個服務,該服務執行一些數據庫操作。但是該服務長時間處於空閒狀態,因爲我們不需要定期使用該服務。假設我在星期一做了一些操作,之後我想要使用服務2天后,假設我想在週三使用該服務。但是由於mysql有一個屬性wait_timeout mysql在其wait_timeout定義值後關閉我的連接。 在wait_timeout超過後是否有任何hibenate配置屬性會自動重新連接到數據庫。 找遍了幾個選項: 1]新增autoReconnect的真正在Hibernate的配置或數據庫URL(我已經嘗試過,但無法WAIT_TIMEOUT後重新連接數據庫) 2]使用C3P0連接器如何防止從mysql wait_timeout使用hibernate進行mysql連接?

請建議我去wait_timeout後重新連接數據庫。 我沒有用過C3P0連接器,但我想知道是不是很好用C3P0,或者是它的最佳解決方案

請讓我知道,以重新連接數據庫的任何其他選項。

回答

2

大多數連接器提供了類似ValidationQuery的東西來防止丟失數據庫連接。對於MySQL,ValidationQuery將是「SELECT 1」。

查看this page瞭解一些示例(例如使用c3po,jdbc或直接在數據源上)。我通常將ValidationQuery配置爲DatasourceProvider的一部分。