wait_timeout) 값 보다 짧아야만 한다leakDetectionThreshold0이면 검출하지 않음.max-lifetime보다 작게 주는 것이 좋다.Connection leak detection triggered for, Apparent connection leak detectedWARN 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 값은 의미가 없어서 무시된다.