sql >> Database >  >> RDS >> Oracle

JDBC fundamentele concepten, pooling en threading

Connection-pools versieren Connection- en Statement-instanties met hun eigen wrapper-implementaties. Wanneer u een verbinding dichtbij belt, geeft u deze eigenlijk gewoon terug aan de pool. Wanneer je close callt op een voorbereid statement, geef je het eigenlijk gewoon terug in de statement-cache van de verbinding. Wanneer u een instructie voorbereidt, haalt u mogelijk een instantie van een in de cache opgeslagen instructie van de verbinding op. Dit alles is aan het zicht onttrokken, zodat u zich er geen zorgen over hoeft te maken.

Wanneer een verbinding aan een client wordt gegeven, is deze niet langer beschikbaar voor een andere client om te gebruiken totdat de verbinding weer wordt vrijgegeven aan de pool. Over het algemeen haal je verbindingen gewoon op wanneer je ze nodig hebt en stuur je ze terug zodra je ermee klaar bent. Omdat de verbindingen in het zwembad open worden gehouden, is er weinig overhead bij het ophalen en vrijgeven van verbindingen.

U moet een verbinding uit de pool gebruiken, net zoals u een enkele JBDC-verbinding zou gebruiken en de best-practices volgen met betrekking tot het sluiten van bronnen, zodat u geen verbindingen of verklaringen lekt. Bekijk de voorbeelden van try/catch/finally in enkele van de andere antwoorden.

Pools kunnen de verbindingsbronnen beheren en testen voordat ze aan clients worden uitgedeeld om ervoor te zorgen dat ze niet oud zijn. Ook zal een pool verbindingen maken en vernietigen als dat nodig is.



  1. Updaten en bestellen met ms sql

  2. Na het herstellen van mijn database-serie verwijderd uit de kolom in Postgresql

  3. MySQL:ERROR 1215 (HY000):Kan geen beperking voor externe sleutels toevoegen

  4. Inclusief DB-functieaanroepen in python MySQLdb executemany()