Programming
No. | 804 | ||||||||||||
Name. | swindler | ||||||||||||
Subject. | mysql Got timeout reading communication packets | ||||||||||||
Main Cate. | Java | ||||||||||||
Sub Cate. | |||||||||||||
Date. | 2018-06-29 10:25 | ||||||||||||
Hit. | 6489 (59.29.233.1) | ||||||||||||
File. | |||||||||||||
해결을 포기하고, 꼼수로 처리하기는 진짜 오랜만인것 같다. 일단 java 프로그램에서 다음과 같은 에러가 발생함. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 105,854 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 105,854 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. ------------------- java.sql.SQLException: Operation not allowed after ResultSet closed -------------------- mysql DB에는 다음과 같은 로그가 생김. 2018-06-29T01:19:53.534608Z 14 [Note] Aborted connection 14 to db: 'lab' user: 'root' host: '127.0.0.1' (Got timeout reading communication packets) 프로그램이 대충 다음과 같이 돌아감. while(ReseultSet.next()) { // 여기서 DB와 상관없이 시간이 오래걸리는 작업이 있음. } 작업하는 사이에 timeout에 걸려서 접속이 끊긴 것으로 추정됨. db에 있는 각종 timeout 시간을 늘려도 해결이 안됨. Java코드에서 pstmt.setQueryTimeout(180); 이런식으로 해도 해결이 안됨.... 그래서, while 안에서 적당히 쿼리를 한번씩 던져줘서 꼼수로 해결할려고 했는데, 그렇게 수정하자니 소스가 말도 안 되는 수준이 될것 같은 문제가 발생... 잠시 생각좀 해보고 결정해야겠음 ㅠㅠ -> 일단 connector/J string에 다음과 같이 autoReconnect를 넣어서 처리함 autoReconnect=true [바로가기 링크] : http://coolx.net/cboard/develop/804 |
|||||||||||||
|
|||||||||||||
[Modify] [Delete] | [Reply] [List] |