Oracle
 sql >> Base de données >  >> RDS >> Oracle

Concepts fondamentaux de JDBC, Pooling et Threading

Les pools de connexions décorent les instances Connection et Statement avec leurs propres implémentations de wrapper. Lorsque vous appelez la fermeture d'une connexion, vous la relâchez simplement dans le pool. Lorsque vous appelez close sur une instruction préparée, vous la relâchez simplement dans le cache d'instructions de la connexion. Lorsque vous préparez une instruction, vous pouvez simplement récupérer une instance d'instruction mise en cache à partir de la connexion. Tout cela est masqué pour que vous n'ayez pas à vous en soucier.

Lorsqu'une connexion est donnée à un client, elle n'est plus disponible pour aucun autre client jusqu'à ce que la connexion soit rétablie dans le pool. En général, vous récupérez simplement les connexions lorsque vous en avez besoin, puis vous les renvoyez dès que vous en avez terminé. Étant donné que les connexions sont maintenues ouvertes dans le pool, il y a peu de surcharge lors de la récupération et de la libération des connexions.

Vous devez utiliser une connexion à partir du pool comme vous le feriez pour une seule connexion JBDC et suivre les meilleures pratiques concernant la fermeture des ressources afin de ne pas divulguer de connexions ou d'instructions. Voir les exemples try/catch/finally dans certaines des autres réponses.

Les pools peuvent gérer les ressources de connexion et les tester avant de les distribuer aux clients pour s'assurer qu'elles ne sont pas obsolètes. De plus, un pool créera et détruira des connexions selon les besoins.