2016-12-06 249 views
-1

我正在使用連接到Mysql數據庫的Java Web應用程序(spring mvc)。 當我晚上離開我的應用程序,並沒有要求在夜間處理,在早上它是拋出java.sql.SQLException: Communication link failure: java.net.SocketException, underlying cause: Software caused connection abort: recv failed錯誤。 我正在使用Apache JDBC連接池,即在我的Spring配置文件中。如何解決java.net.SocketException:軟件導致連接中止:recv失敗

我做了一些研究,發現問題的真正原因是,閒置,當數據庫連接超時,當Java應用程序試圖使用這些陳舊的連接,它拋出

java.sql.SQLException: Communication link failure: 
java.net.SocketException, underlying cause: Software caused connection abort: recv failed error. 
+0

您可以嘗試推行一種心跳機制,以使一個簡單的請求到數據庫,也就是說,每分鐘以保持連接活着。例如,實現一個簡單的存儲函數,它接收一個整數值並返回相同的值。這將消耗您的服務器資源幾乎沒有,同時防止空閒超時。 – FDavidov

+0

[com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈接失敗導致連接中止的軟件:recv失敗]的可能重複(http://stackoverflow.com/questions/9527459/com-mysql-jdbc-exceptions-jdbc4 -communicationsexception-communications-link-fai) –

+2

[正式原因導致軟件連接中止:套接字寫入錯誤](http://stackoverflow.com/questions/2126607/official-reasons-for-software-caused -connection-abort-socket-write-error) – EJP

回答

0

連接到數據庫i。由在MySQL配置文件增加超時值固定此probleme = C:\程序文件(x86)\的MySQL \ MySQL服務器5.1 \的my.ini

的[mysqld] WAIT_TIMEOUT = 2147483 interactive_timeout = 2147483

然後我重新啓動了mysql服務。

謝謝@EJP

相關問題