Ve skutečnosti nepoužíváte fond připojení. ConnectionPoolDataSource
není určeno k přímému použití. Je určen jako (speciální) DataSource
pro PooledConnection
objekty, které jsou pak udržovány ve fondu připojení (normálním) DataSource
implementace, která poskytuje sdružování připojení.
Normální vývojář by neměl používat ConnectionPoolDataSource
přímo, je určen pro použití s fondy připojení poskytovanými aplikačními servery nebo pro obecné použití DataSource
s, které poskytovaly sdružování připojení.
Při Connection
je požadováno z fondu připojení, provede rezervaci existujícího PooledConnection
(nebo si vyžádejte nový z jeho ConnectionPoolDataSource
), načtěte Connection
a vrátit to uživateli. Když uživatel zavře Connection
, PooledConnection
signalizuje fondu připojení, že je opět k dispozici.
V tomto případě vytváříte PooledConnection
, načtením Connection
z něj a poté zahození PooledConnection
. To znamená, že PooledConnection
opustí a jeho fyzické připojení k databázi nelze znovu použít a bude uzavřeno/zahozeno, když bude konečně shromážděno odpadky (normálně, když chce fond připojení ukončit fyzické připojení, zavolá close()
na PooledConnection
).
Musíte buď použít sdružování připojení, které poskytuje váš aplikační server, nebo použít společný fond připojení, jako je DBCP, c3p0 nebo BoneCP.