Sobes.tech
Senior

Hikari Pool 10 kapcsolattal, terhelés alatt 'connections not available' üzenetet kapunk. Mit tegyek?

sobes.tech MI

Válasz az MI-től

A "connections not available" hiba a HikariCP-ben, amikor 10 kapcsolat van a poolban, azt jelenti, hogy minden elérhető kapcsolat foglalt, és az új kérések nem tudnak kapcsolatot szerezni a poolból.

Mit tegyünk:

  • Növeljük a pool méretét (például növeljük a maxPoolSize-t), ha a terhelés valóban több kapcsolatot igényel.
  • Ellenőrizzük, hogy a kapcsolatok helyesen vannak-e lezárva (a close() metódus hívása a Connection-on), különben foglalt maradnak.
  • Elemezzük a kapcsolatok élettartamát és várakozási idejét (connectionTimeout), lehet, hogy növelni kell a timeout értékét.
  • Optimalizáljuk a lekérdezéseket és tranzakciókat, hogy azok a lehető legkevesebb ideig foglalják a kapcsolatokat.
  • Kapcsoljuk be a HikariCP naplózását, hogy észrevegyük a kapcsolat szivárgásokat (leakDetectionThreshold).

Példa a pool növelésére:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // növeljük a poolt 20-ra
HikariDataSource ds = new HikariDataSource(config);

Fontos, hogy biztosítsuk, a adatbázis és az infrastruktúra képes legyen kezelni a megnövekedett kapcsolatszámot.