Preskoči na glavno vsebino

Chyba: A ResourcePool could not acquire a resource

Aplikácia nezískala spojenie s databázou (PostgreSQL) – výpadok, preťaženie alebo vyčerpaný pool spojení

Avtor: Petr Pech

Čo chyba znamená

Aplikácia nezískala spojenie do databázy – buď sa k nej vôbec nedokáže pripojiť, alebo nedostala voľné spojenie v časovom limite.

👉 Typicky ide o výpadok, nedostupnosť alebo preťaženie PostgreSQL.


Ako sa problém prejavuje

V logu alebo v hlásení aplikácie sa objaví niektorá z týchto variant. Všetky znamenajú to isté:

class java.sql.SQLException:
Connections could not be acquired from the underlying database!

class java.sql.SQLException:
An attempt by a client to checkout a Connection has timed out.

class com.mchange.v2.resourcepool.TimeoutException:
A client timed out while waiting to acquire a resource from
com.mchange.v2.resourcepool.BasicResourcePool -- timeout at awaitAvailable()


Možné príčiny

  • databázová služba nebeží

  • došlo k výpadku spojenia (sieť, restart servera, ukončené VPN)

  • databáza je preťažená alebo neodpovedá

  • vyčerpanie dostupných spojení (príliš mnoho súčasne pripojených klientov alebo integrácií)


Ako problém riešiť

Postup sa líši podľa toho, kde Flexi prevádzkujete.

Cloud (adresa v tvare nazovfirmy.flexibee.eu)

K databáze ani serveru nemáte prístup – ich provoz zabezpečuje ABRA. Skúste akciu zopakovať a pri pretrvávajúcich problémoch kontaktujte podporu. Uveďte presné znenie chyby a čas, kedy nastala.

Vlastný server (on-premise)

  1. Overte, že beží databázová služba PostgreSQL.

  2. Skontrolujte dostupnosť servera zo stanice klienta (sieť, port, firewall).

  3. Prejdite log servera a log PostgreSQL – zvyčajne obsahujú konkrétnu príčinu.

  4. Reštartujte službu Flexi servera, prípadne databázu.

⚠️ Ak sa chyba opakuje pravidelne (typicky v čase uzávierok alebo pri behu integrácií), ide najčastejšie o vyčerpaný pool spojení alebo poddimenzovaný server. Riešenie potom patrí správcovi servera, pri cloude našej podpore.

Súvisiace články

Ste s tem dobili odgovor na svoje vprašanje?