Spring : MySQL 연결 시도 시
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException 나올 때
아.. 에러를 제대로 캡쳐했어야했어...ㅜㅜ 하지만 아래 콘솔에 있는 내용으로 구글링해서 해결을 본 것이니 이정도 내용이면 충분할 듯 하다.
에러발생 당시 콘솔출력내용
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
WARN : com.mchange.v2.resourcepool.BasicResourcePool - Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@1baf602 is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests.
....
원인은
스프링 프레임웍과 MySQL 사용 시 특정 시점이 지나면 자동으로 커넥션을 잃어버리는 문제가 있단다.
스프링에서 오랜시간 동안 아무런 데이터요청이 없으면 커넥션과 풀링을 해지하는 기능을 가지고 있기 때문에 이런 문제가 나오는 것이란다.
이 문제를 해결하기 위해선 autoReconnection 속성을 true로 바꿔주면 간단히 해결된다.
dataSource 내용 변경 전
<!-- JDBC dataSource 설정. 톰캣 server.xml 설정하듯이. -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/we2?characterEncoding=utf8&useSSL=false" />
<property name="user" value="we2admin" />
<property name="password" value="1234" />
</bean>
dataSource 내용 변경 후
<!-- JDBC dataSource 설정. 톰캣 server.xml 설정하듯이. -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/we2?characterEncoding=utf8&useSSL=false&autoReconnection=true" />
<property name="user" value="we2admin" />
<property name="password" value="1234" />
</bean>
ref: https://m.blog.naver.com/PostView.nhn?blogId=imf4&logNo=220798149078&proxyReferer=https:%2F%2Fwww.google.com%2F
'날리지 > 언어' 카테고리의 다른 글
Your python3 install is corrupted. Please fix the '/usr/bin/python3' symlink. Error Solution (0) | 2020.10.05 |
---|---|
우분투 18 에 docker 설치하기 (0) | 2020.09.14 |
Eclipse 에서 gradle dependency가 안 보일 때. (0) | 2020.08.28 |
우분투에서 pptp vpn block 될 때 (0) | 2020.08.24 |
Pycharm에서 flask로 개발할 때, 포트 변경하는 방법 (0) | 2020.02.20 |