Přeskočit na hlavní obsah

Chyba: A ResourcePool could not acquire a resource

Aplikace nezískala spojení do databáze (PostgreSQL) – výpadek, přetížení nebo vyčerpaný pool spojení

Autor: Petr Pech

Co chyba znamená

Aplikace nezískala spojení do databáze – buď se k ní vůbec nedokáže připojit, nebo nedostala volné spojení v časovém limitu.

👉 Typicky jde o výpadek, nedostupnost nebo přetížení PostgreSQL.


Jak se problém projevuje

V logu nebo v hlášení aplikace se objeví některá z těchto variant. Všechny znamenají totéž:

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é příčiny

  • databázová služba neběží

  • došlo k výpadku spojení (síť, restart serveru, ukončené VPN)

  • databáze je přetížená nebo neodpovídá

  • vyčerpání dostupných spojení (příliš mnoho současně připojených klientů nebo integrací)


Jak problém řešit

Postup se liší podle toho, kde Flexi provozujete.

Cloud (adresa ve tvaru nazevfirmy.flexibee.eu)

K databázi ani serveru nemáte přístup – jejich provoz zajišťuje ABRA. Zkuste akci zopakovat a při přetrvávajících potížích kontaktujte podporu. Uveďte přesné znění chyby a čas, kdy nastala.

Vlastní server (on-premise)

  1. Ověřte, že běží databázová služba PostgreSQL.

  2. Zkontrolujte dostupnost serveru ze stanice klienta (síť, port, firewall).

  3. Projděte log serveru a log PostgreSQL – zpravidla obsahují konkrétní příčinu.

  4. Restartujte službu Flexi serveru, případně databázi.

⚠️ Pokud se chyba opakuje pravidelně (typicky v době uzávěrek nebo při běhu integrací), jde nejčastěji o vyčerpaný pool spojení nebo poddimenzovaný server. Řešení pak patří správci serveru, u cloudu naší podpoře.

Související články

Dostali jste odpověď na svou otázku?