본문 바로가기

Programing/Framework

[SpringBoot] HikariCP의 leakDetectionThreshold 기본값은?

SpringBoot에서는 기본 커넥션 풀을 HikariCP을 쓴다.

가끔 long query가 있는지 가끔 누수가 검출되었다고 나온다.

그런데 좀 지나면 해당 커넥션이 회수되었다고 뒷북(?) 로그가 나온다.

회수가 되었으니 누수는 아닌데 에러 로그에 껴있어서 신경이 쓰인다.

 

스프링부트에는 spring.datasource.hikari.leak-detection-threshold 라는 프로퍼티가 있다.

실제 HikariCP에서는 leakDetectionThreshold 프로퍼티에 대응된다.

com.zaxxer.hikari.HikariConfig 클래스에 보면 leakDetectionThreshold 필드가 있다.

 

기본값 디버깅

부트가 기본값으로 얼마를 넣어주는지 궁금해서 디버깅을 해보았다.

org.springframework.boot.context.properties.bind.JavaBeanBinder 에 의해 설정된다.

값은 2000 ms 였다. 즉, 최솟값이었다. (원래 HikariCP의 기본값은 0이다. 검출하지 않음)