Java Hikari Pool 을 사용하다가 아래와 같은 Warning Log를 보았다.
원인은 MySQL의 wait_timeout 보다 Hikari의 MaxLifeTime이 더 길게 설정 되어 있어서 나오는 메시지이다.
해결 방법으로
1번 MySQL의 wait_timeout을 Hikair MaxLifeTime 보다 늘린다.
2번 Hikari의 MaxLifeTime을 MySQL wiat-timeout 보다 2-3초 정도 작게 설정한다.
DB쪽에 값을 변경하면 다른 서비스쪽에 영향이 있을지도 모르니 2번 Hikari 설정값을 변경하는 걸로 정했다.
MySQL의 wait_timeout 값은 아래 쿼리로 알 수 있다.
show variables like 'wait_timeout';
우리 DB서버는 wait_timeout값은 28,800이다. (예전에 쓰던 모뎀 속도다.. <– 옛날사람)
Hikira의 값을 변경한다. application.yml 에서
spring:
datasource:
hikari:
max-lifetime: 26000
이제 같은 메시지가 나오는지 기다려 보자.