Sobes.tech
Senior

Hikari Pool su 10 jungtimis, apkrovos metu gavome 'connections not available'. Ką daryti?

sobes.tech AI

Atsakymas iš AI

HikariCP, turint 10 jungčių baseiną, klaida "connections not available" reiškia, kad visos prieinamos jungtys yra užimtos ir nauji užklausimai negali gauti jungties iš baseino.

Ką daryti:

  • Padidinkite baseino dydį (pavyzdžiui, padidinkite maxPoolSize), jei apkrova iš tikrųjų reikalauja daugiau jungčių.
  • Patikrinkite, ar jungtys teisingai uždaromos (kviesti close() metodą Connection objekte), kitaip jos lieka užimtos.
  • Analizuokite jungčių gyvavimo laiką ir laukimo laiką (connectionTimeout), galbūt reikia padidinti timeout.
  • Optimizuokite užklausas ir transakcijas, kad jos užimtų jungtis kuo trumpiau.
  • Įjunkite HikariCP žurnalavimą, kad aptiktumėte jungčių nutekėjimus (leakDetectionThreshold).

Pavyzdinis konfigūracijos pavyzdys, didinant baseiną:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // padidinti iki 20
HikariDataSource ds = new HikariDataSource(config);

Svarbu užtikrinti, kad duomenų bazė ir infrastruktūra galėtų palaikyti padidintą jungčių skaičių.