2011-12-15 35 views
3

我可以使用isValid(0)函數檢查連接是否仍然活動(活動)?MySql isValid方法超時

我得到以下異常:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

的最後一個數據包成功地從服務器接收到的是毫秒以前。 成功發送到服務器的最後一個數據包是毫秒前的,這比服務器配置的值'wait_timeout'長。

你應該考慮在你的應用程序使用前或者到期和/或測試連接的有效性,增加了服務器的配置值,客戶端超時,或使用連接器/ J連接屬性「autoReconnect的=真」來避免這個問題

我無法增加'wait_timeout'值。

另外我嘗試了autoReconnect=true,但我仍然需要處理異常。

我瞭解了isValid()函數。 但我不明白它檢查的有效性。

會用isValid(0)幫我解決超時問題嗎?

回答

0

根據the docisValid需要運行「查詢」,所以它應該是有用的。

驅動程序應該提交一個關於連接的查詢或者使用一些其他的機制,當這個方法被調用時肯定地驗證連接仍然有效。

好像你的連接池應該爲你做的事情...