U gebruikt niet echt een verbindingspool. Een ConnectionPoolDataSource
is niet bedoeld om direct te worden gebruikt. Het is bedoeld als een (speciale) DataSource
voor PooledConnection
objecten die vervolgens in een verbindingspool worden bewaard door een (normale) DataSource
implementatie die pooling van verbindingen mogelijk maakt.
Een normale ontwikkelaar mag geen ConnectionPoolDataSource
. gebruiken rechtstreeks, het is bedoeld voor gebruik met verbindingspools die worden geleverd door toepassingsservers, of om te worden verpakt in DataSource
voor algemene doeleinden s die voor pooling van verbindingen zorgden.
Wanneer een Verbinding
wordt aangevraagd bij de verbindingspool, wordt een bestaande PooledConnection
uitgecheckt (of vraag een nieuwe aan via de ConnectionPoolDataSource
), haal een Verbinding
. op en geef dat terug aan de gebruiker. Wanneer de gebruiker de Verbinding
. sluit , de PooledConnection
zal de verbindingspool signaleren dat deze weer beschikbaar is.
In dit geval maakt u een PooledConnection
, ophalen van een Verbinding
ervan en verwijder vervolgens de PooledConnection
. Dit betekent dat de PooledConnection
wordt verlaten en de fysieke verbinding met de database kan niet opnieuw worden gebruikt en zal worden gesloten/weggegooid wanneer het uiteindelijk wordt verzameld (normaal gesproken, wanneer de verbindingspool de fysieke verbinding wil sluiten, roept het close()
op de PooledConnection
).
U moet ofwel verbindingspooling gebruiken zoals geleverd door uw toepassingsserver, of een algemene verbindingspool gebruiken, zoals DBCP, c3p0 of BoneCP.