numTestsPerEvictionRun
: -1
을 주면 매번 전체 idle 커넥션에 대한 eviction 테스트를 진행하며 이 경우에는 성능저하가 있을 수 있음. tomcat jdbc connection pool 에서는 이 값을 무시하고 항상 전체 커넥션을 validation 한다.timeBetweenEvictionRunsMillis
: numTestsPerEvictionRun
이 작은 상태에서 이 값도 작으면 오랜시간 idle 상태로 유지되면서 비정상 커넥션으로 떨어질 가능성이 높아짐.numTestsPerEvictionRun
는 작게(3 정도?), timeBetweenEvictionRunsMillis
도 작게(5000ms 정도?)로 주는 것이 좋다.java.lang.Exception: The lifetime of the connection [300,008] milliseconds exceeds the maximum permitted value of [300,000] milliseconds
와 같은 WARN 메시지 발생 maxConnLifetimeMillis
보다 오래 살아남은 커넥션에 대한로그임.testOnBorrow
혹은 testWhileIdle
등에 사용되는 쿼리 유효성 검사 쿼리.validationQuery
값은 비워두는 것이 좋다./* ping */
으로 시작하는 쿼리를 지정해도 동일한 효과가 난다.validationQueryTimeout
값도 함께 지정해주도록 한다. 초(sec) 단위.