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
라고 적혀있어서 해봤는데 안된다..
tomcat이 아닌가?
일단 1.3 버전으로 다시 서버를 돌려놓고 기다리는 중.......
1.3 버전으로 동작 하는구나.
자동완성으로 안 나와도 사용 가능하다.