sql >> Database >  >> RDS >> Mysql

Hoe hergebruik van verbindingen in jdbc pool te forceren?

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.



  1. Bulksgewijs invoegen of bijwerken voor tabellen met bijlagevelden

  2. Casestudy van SQL Server Database Server Hardware-upgrade

  3. back-up van mysql-database met mysqldump

  4. Tabel heeft geen primaire sleutel