wait_timeout
) 값 보다 짧아야만 한다leakDetectionThreshold
0
이면 검출하지 않음.max-lifetime
보다 작게 주는 것이 좋다.Connection leak detection triggered for
, Apparent connection leak detected
WARN 924 --- [l-1 housekeeper] com.zaxxer.hikari.pool.ProxyLeakTask : Connection leak detection triggered for com.mysql.jdbc.JDBC4Connection@ffd3737 on thread http-nio-80-exec-8, stack trace follows java.lang.Exception: Apparent connection leak detected at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-2.7.9.jar:na] .... Stacktrace 를 잘 보면 leak 을 일으킨 호출 코드를 볼 수 있다.
test-while-idle
로 접속을 장시간 유지하지 말고 max-lifetime
을 짧게 줘서 커넥션을 새로 맺게 하자.max-lifetime
이 DB의 wait_timeout
보다 더 적은 값이라는 것(2~3초 정도 짧게)을 확인해야한다.max-lifetime
을 짧게 주면 될 듯.minIdle == maxPoolSize
인 경우에는 idleTimeout
값은 의미가 없어서 무시된다.