Sobes.tech
Senior

Hikari Pool s 10 připojeními, při zátěži jsme obdrželi 'connections not available'. Co dělat?

sobes.tech AI

Odpověď od AI

Chyba "connections not available" v HikariCP s pool 10 spojení znamená, že všechna dostupná spojení jsou obsazena a nové požadavky nemohou získat spojení z poolu.

Co dělat:

  • Zvýšit velikost poolu (například zvýšit maxPoolSize), pokud zatížení skutečně vyžaduje více spojení.
  • Zkontrolovat, že spojení jsou správně uzavřena (voláním metody close() na Connection), jinak zůstanou obsazena.
  • Analyzovat dobu života a dobu čekání spojení (connectionTimeout), možná je třeba zvýšit timeout.
  • Optimalizovat dotazy a transakce tak, aby zabraly spojení co nejkratší dobu.
  • Zapnout logování HikariCP pro odhalení úniků spojení (leakDetectionThreshold).

Příklad nastavení pro zvýšení poolu:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // zvýšit pool na 20
HikariDataSource ds = new HikariDataSource(config);

Je důležité zajistit, že databáze a infrastruktura zvládnou zvýšený počet spojení.