autoCommit: 커넥션이 풀에서 반환될 때, auto-commit을 할지 여부를 결정한다. (기본값: true)
connectionTimeout: 풀에서 커넥션을 가져올 때의 timeout 설정 (기본값: 30,000 - 30초)
idleTimeout: 커넥션이 풀에서 idle 상태로 있을 수 있는 최대 시간을 설정한다. 이 설정은 minimumIdle이 maximumPoolSize 보다 작은 경우에만 적용이 된다. 이 설정을 0으로 한다면 idle 상태의 커넥션이 풀에서 제거되지 않는다. 기본값은 600,000 (10분)이다.
keepaliveTime: 데이터베이스 또는 네트워크 인프라에 의해 timeout 되는것을 방지하기 위해서 HikariCP가 Ping을 날리는 주기를 결정한다. 이 설정값은 maxLifetime 값보단 작아야한다. 커넥션이 "keepalive" 시간이 되면, 커넥션은 풀에서 꺼내져서 Ping을 날린 후에 다시 커넥션에 반환된다. ping은 JDBC4 isValid() 메소드 호출 또는 connectionTestQuery 실행 중 하나이다. 이 값의 최소값은 30,000(30초)이며 분 범위의 값이 가장 바람직하다. 기본값은 0으로 disable 시킨다.
maxLifetime: 커넥션이 풀에서 존재할 수 있는 최대시간. 현재 사용중인 커넥션은 중간에 절대로 폐기되지 않으며, 사용중이지 않을 때만 풀에서 제거된다. 대량의 커넥션 제거를 방지하기 위해 커넥션 별로 약간의 오차를 둔다. 데이터베이스 또는 인프라에서 부과하는 커넥션 time limit 보다 수 초 정도 짧게 설정하는 것을 강력히 권장한다. 이 값을 0으로 설정하면 최대 수명이 없음을 나타내며 이 경우 idleTimeout 설정에 따라 커넥션이 종료된다. 최소값은 30,000(30초)이며 기본값은 180,000 (30분)이다.
connectionTestQuery: 드리어버가 JDBC4를 지원하는 경우 이 속성을 설정하지 않는것이 좋다. Connection.isValid 메소드를 지원하지 않는 레거시 드라이버를 위한 설정이다. 이 쿼리는 커넥션이 풀에서 꺼내어 질 때, 커넥션과 데이터베이스 연결이 살아있는지를 확인하기 위해서 실행된다.
validationTimeout: 이 속성은 커넥션이 살아있는지 테스트될 때 사용되는 timeout 값이다. 기본값은 5,000으로 connectionTimeout 보다는 작아야한다.
minimumIdle: Hikari는 최소한 이 설정값 이상의 idle 커넥션을 유지하려고 노력한다. 만약에 idle 커넥션의 수가 이 설정값 아래로 떨어지고, 커넥션의 총 개수가 maximumPoolSize 보다 작은 경우엔 Hikari는 빠르게 커넥션을 추가하려고 노력한다. 가능하면 이 설정값을 사용하지 않고 HikariCP가 고정된 크기의 커넥션 풀을 사용하도록 하는것을 권장한다. 기본값은 maximumPoolSize 과 같다.
maximumPoolSize: 풀에서 유지할 수 있는 최대 커넥션 수(사용중인 커넥션 + idle 커넥션 모두 포함) 합리적인 값은 실행 환경에 따라 결정된다. 풀이 maximumPoolSize에 도달하고, idle한 커넥션이 없는 상태에서 getConnection() 메소드가 호출되면 해당 메소드는 connectTimeout 시간동안 block 된다.
poolName: 유저가 정의한 커넥션 풀의 이름을 지정한다. 로깅 및 JMX management console에서 풀을 식별하는데 사용될 수 있다.
HikariCP 관련 설정
minimumIdle
이maximumPoolSize
보다 작은 경우에만 적용이 된다. 이 설정을 0으로 한다면 idle 상태의 커넥션이 풀에서 제거되지 않는다. 기본값은 600,000 (10분)이다.maxLifetime
값보단 작아야한다. 커넥션이 "keepalive" 시간이 되면, 커넥션은 풀에서 꺼내져서 Ping을 날린 후에 다시 커넥션에 반환된다. ping은 JDBC4 isValid() 메소드 호출 또는 connectionTestQuery 실행 중 하나이다. 이 값의 최소값은 30,000(30초)이며 분 범위의 값이 가장 바람직하다. 기본값은 0으로 disable 시킨다.Connection.isValid
메소드를 지원하지 않는 레거시 드라이버를 위한 설정이다. 이 쿼리는 커넥션이 풀에서 꺼내어 질 때, 커넥션과 데이터베이스 연결이 살아있는지를 확인하기 위해서 실행된다.참고