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.