Hikari Pool – Possibly consider using a shorter maxLifetime value.

By | 2020년 4월 28일

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

이제 같은 메시지가 나오는지 기다려 보자.