2017. 4. 4. 01:19 Computer/SpringBoot
MySQLNonTransientConnectionException 오류 발생 시
출처
SpringBoot 옵션 : https://github.com/spring-projects/spring-boot/issues/1303
발생 원인 :
http://slidedeck.io/joohee/revealjs_mysql_options
정리
연결을 맺은 후 다음 쿼리까지 기다리는 시간이 있다.
이 시간을 초과했을 때 연결이 끊어지게 된다.
이는 끊어진 커넥션은 다시 커넥션 풀로 돌아가지 않는다는 것이다.
testOnBorrow, testOnIdle 의 기본값은 false이다.
testOnBorrow and testOnIdle을 true로 변경해주고, 꼭 validationQuery는 적어줘야 한다.
파일 : application.properties
SpringBoot 1.3
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1
SpringBoot 1.4+
spring.datasource.tomcat.testOnBorrow=true
spring.datasource.tomcat.validationQuery=SELECT 1