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);
Կարևոր է համոզվել, որ տվյալների բազան և ենթակառուցվածքը կարող են դիմակայել մեծացված կապերի քանակին։