-1

Mysql 데이터베이스에 연결하는 Java 웹 응용 프로그램 (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 : 소프트웨어가 연결을 끊었습니다. abort : recv failed

는 제가 조사를 좀 해봤 문제의 진짜 원인은 유휴 상태 때 데이터베이스 연결 시간 초과한다는 것을 발견했다 Java 응용 프로그램은

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

을 @EJP 감사합니다. 예를 들어, 정수 값을 받고 동일한 값을 반환하는 간단한 저장 함수를 구현하십시오. 이렇게하면 유휴 시간 초과를 방지하면서 서버 자원에서 거의 아무것도 소비하지 않습니다. – FDavidov

+0

[com.mysql.jdbc.exceptions.jdbc4.CommunicationsException의 가능한 복제본 : 통신 링크 실패 소프트웨어로 인해 연결이 중단됨 : recv failed] (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

을 던져 그 오래된 연결을 사용하여 데이터베이스에 연결을 시도 할 때 난 MySQL의 설정 파일에 타임 아웃 값을 증가시킴으로써이 probleme 고정 = C : \ 프로그램 파일 (86) \의 MySQL \ MySQL 서버 5.1 \의 my.ini :

[mysqld를] 아웃 (wait_timeout) = 2,147,483 interactive_timeout = 2,147,483

그리고 나서 나는 mysql 서비스를 다시 시작했다.

는, 말, 매 순간 살아 연결을 유지하기 위해 당신이 당신은 DB에 대한 간단한 요청을 만들 것 하트 비트 메커니즘의 일종을 구현하려고 할 수 있습니다