Back to questions
Senior
13
Hikari Pool с 10 коннектами, под нагрузкой получили 'connections not available'. Что делать?
Companies where asked
СБК ПАРУС
Answer from AI
sobes.tech AI
Ошибка "connections not available" в HikariCP при пуле из 10 коннектов означает, что все доступные соединения заняты и новые запросы не могут получить соединение из пула.
Что делать:
- Увеличить размер пула (например, увеличить maxPoolSize), если нагрузка действительно требует больше соединений.
- Проверить, что соединения корректно закрываются (вызывается метод close() на Connection), иначе они остаются занятыми.
- Проанализировать время жизни и время ожидания соединений (connectionTimeout), возможно стоит увеличить таймаут.
- Оптимизировать запросы и транзакции, чтобы они занимали соединения как можно меньше времени.
- Включить логирование HikariCP для выявления утечек соединений (leakDetectionThreshold).
Пример настройки увеличения пула:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // увеличить пул до 20
HikariDataSource ds = new HikariDataSource(config);
Важно убедиться, что база данных и инфраструктура могут выдержать увеличенное количество соединений.