Connection Pool
Ein Connection Pool ist eine Sammlung vorgewärmter DB-Verbindungen.
Vermeidet TCP-Handshake + DB-Login bei jedem Request.
I. Wofür?
Ein normaler DB-Connect kostet:
- TCP-Handshake (3-Way)
- TLS-Handshake (falls aktiv)
- DB-Login (Auth + User-Setup)
Das dauert. Ein Pool macht das einmal und gibt die Connection bei jedem Request kurz raus, danach zurück in den Pool.
II. Konfiguration in WildFly
min-pool-size=1→ mindestens 1 Connection offenmax-pool-size=10→ maximal 10 parallel- Liegt auf der Datasource
III. Visualisierung
Datasource (LeviLearningDS)
├─ C1 ──┐
├─ C2 ──┼──> EntityManager A (Request 1)
├─ C3 ──┘ EntityManager B (Request 2)
├─ C4
└─ .. (bis max=10)
.NET-Vergleich
ADO.NET hat eingebautes Connection-Pooling. Bei JDBC muss der App-Server (= WildFly) es bereitstellen.