Sobes.tech
Senior

Hikari Pool 10 կապերով, բեռի տակ մենք ստացել ենք 'connections not available'. Ինչ անել?

sobes.tech AI

Պատասխան AI-ից

HikariCP- ում 10 կապի պուլով «connections not available» սխալը նշանակում է, որ բոլոր հասանելի կապերը զբաղված են և նոր հարցումները չեն կարող կապ ստանալ պուլից:

Ինչ անել:

  • Պուլի չափը մեծացրեք (օրինակ, ավելացրեք maxPoolSize), եթե բեռը իսկապես պահանջում է ավելի շատ կապեր:
  • Ստուգեք, որ կապերը ճիշտ փակվում են (Calling close() մեթոդը Connection- ի վրա), հակառակ դեպքում դրանք կմնան զբաղված:
  • Վերլուծեք կապերի կյանքի տևողությունը և սպասման ժամանակը (connectionTimeout), հնարավոր է, անհրաժեշտ լինի մեծացնել ժամանակային սահմանափակումը:
  • Օպտիմալացրեք հարցումները և գործարքները, որպեսզի նրանք զբաղեցնեն կապերը որքան հնարավոր է կարճ ժամանակ:
  • Ակտիվացրեք HikariCP-ի լոգավորումը, որպեսզի հայտնաբերեք կապերի արտահոսքերը (leakDetectionThreshold):

Նմուշ կարգավորումը պուլը մեծացնելու համար:

HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20); // մեծացրեք պուլը մինչև 20
HikariDataSource ds = new HikariDataSource(config);

Կարևոր է համոզվել, որ տվյալների բազան և ենթակառուցվածքը կարող են դիմակայել մեծացված կապերի քանակին։