Senior
Hikari Pool z 10 połączeniami, pod obciążeniem otrzymaliśmy 'connections not available'. Co robić?
sobes.tech AI
Odpowiedź od AI
Błąd "connections not available" w HikariCP przy puli 10 połączeń oznacza, że wszystkie dostępne połączenia są zajęte i nowe żądania nie mogą uzyskać połączenia z puli.
Co zrobić:
- Zwiększyć rozmiar puli (np. zwiększyć maxPoolSize), jeśli obciążenie rzeczywiście wymaga więcej połączeń.
- Sprawdzić, czy połączenia są poprawnie zamykane (wywołanie metody close() na Connection), w przeciwnym razie pozostają zajęte.
- Analizować czas życia i czas oczekiwania na połączenia (connectionTimeout), być może trzeba zwiększyć timeout.
- Optymalizować zapytania i transakcje, aby zajmowały połączenia jak najkrócej.
- Włączyć logowanie HikariCP, aby wykryć wycieki połączeń (leakDetectionThreshold).
Przykład konfiguracji zwiększającej pulę:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // zwiększ pulę do 20
HikariDataSource ds = new HikariDataSource(config);
Ważne jest, aby upewnić się, że baza danych i infrastruktura mogą obsłużyć zwiększoną liczbę połączeń.