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:

  1. TCP-Handshake (3-Way)
  2. TLS-Handshake (falls aktiv)
  3. 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


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.