Sobes.tech
Назад к вопросам
Senior
14

Hikari Pool с 10 коннектами, под нагрузкой получили 'connections not available'. Что делать?

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

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);

Важно убедиться, что база данных и инфраструктура могут выдержать увеличенное количество соединений.