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);

მნიშვნელოვანია, რომ დარწმუნდეთ, რომ ბაზა და ინფრასტრუქტურა შეუძლია გაუძლოს გაზრდილ კავშირების რაოდენობას.