반응형
HikariCP를 기본 설정으로 넣고 사용 할 경우에는 DB에서 too many connections 에러가 발생할 수 있어 설정 값을 변경해야 합니다.
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setMinimumIdle(10);
hikariConfig.setMaximumPoolSize(10);
hikariConfig.setConnectionTestQuery("SELECT 1");
hikariConfig.setPoolName(poolName);
hikariConfig.setDriverClassName(this.driverClassName);
hikariConfig.setJdbcUrl(jdbcUrl);
hikariConfig.setUsername(this.dataSourceUserName);
hikariConfig.setPassword(this.dataSourcePassword);
// 3초 - pool 에서 커넥션을 얻어오기전까지 기다리는 최대 시간
hikariConfig.setConnectionTimeout(3000);
// 3초 - valid 쿼리로 커넥션 유효 여부 검사할 때 대기 시간
hikariConfig.setValidationTimeout(3000);
// 3초 - pool 에서 일을 안하는 커넥션을 유지하는 시간, minimumIdle 이 maximumPoolSize 보다 작을 때만 적용
// hikariConfig.setIdleTimeout(3000);
// 58초 - 커넥션 풀에서 살아있을 수 있는 커넥션의 최대 수명 시간
hikariConfig.setMaxLifetime(58000);
return new HikariDataSource(hikariConfig);
- 최적의 성능을 내기 위해서는 setMinimumIdle / setMaximumPoolSize 값을 동일하게 설정해야 합니다.
- setMinimumIdle / setMaximumPoolSize 값을 다르게 설정할 경우에는 setIdleTimeout 주석을 해제 해야 합니다.
- DB에서 too many connections 에러가 발생하는 이유는 MaxLifetime 값이 DB 설정값보다 길게 잡혀서 발생하므로 최대 수명 시간 조정이 필요합니다.
반응형
'개발' 카테고리의 다른 글
html 특수 문자 (> < &) 자바스크립트로 치환하기 (0) | 2021.04.28 |
---|---|
인텔리j 검색 오류(find in path) 해결 방법 (0) | 2021.04.20 |
apache nginx 전환하기 - 설정 옮기기 (0) | 2021.02.09 |
자주 사용하는 도커 명령어 (0) | 2021.02.09 |
톰캣 메서드 제한 설정하기 (0) | 2020.11.29 |