Vytvoreni JDBC spojeni s databazi je draha operace — na Oracle 200-500 ms. Connection pool drzi preddem vytvorena spojeni a recykluje je. Tomcat JDBC Pool vs. Commons DBCP — jednoznacne doporucujeme Tomcat pool.
Sizing¶
Prilis maly pool = requesty cekaji. Prilis velky = plyvani zdroji na DB serveru. Pro 200 concurrent uzivatelu: 30-50 spojeni. maxActive nesmi presahnout PROCESSES limit v Oracle.
Connection validation¶
testOnBorrow=true s validationQuery=”SELECT 1 FROM DUAL” overri kazde spojeni pred pouzitim. testWhileIdle periodicky overuje idle spojeni. Zachrani vas pri restartu databaze nebo firewall timeoutech.
Abandoned connections¶
Connection leak = vyvojar zapomene zavrit spojeni. removeAbandoned=true automaticky detekuje zapomenuta spojeni. logAbandoned=true zaloguje stack trace mista alokace.
Monitoring¶
JMX statistiky: NumActive, NumIdle, WaitCount. Pokud NumActive dlouhodobe blizi maxActive = problem.
Pravidla¶
- Vzdy pool, nikdy DriverManager.getConnection() v produkci. 2. Validation queries. 3. removeAbandoned. 4. JMX monitoring. 5. Testujte failover.