Je voulais juste connaître le concept de pooling de connexion à une base de données et comment il est réalisé.
Réponses
Trop de publicités?Base de données connexion Le pooling est une méthode utilisée pour garder les connexions aux bases de données ouvertes afin qu'elles puissent être réutilisées par d'autres.
En général, l'ouverture d'une connexion à une base de données est une opération coûteuse, surtout si la base de données est distante. Vous devez ouvrir des sessions réseau, vous authentifier, faire vérifier les autorisations, etc. La mise en commun maintient les connexions actives de sorte que, lorsqu'une connexion est demandée ultérieurement, l'une des connexions actives est utilisée de préférence à la création d'une autre.
Reportez-vous au schéma suivant pour les prochains paragraphes :
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
Dans sa forme la plus simple, il s'agit simplement d'un appel d'API similaire (1) à un appel d'API d'ouverture de connexion qui est similaire à l'appel "réel". Il vérifie d'abord le pool pour une connexion appropriée (2) et, si une est disponible, elle est donnée au client. Sinon, une nouvelle connexion est créée (3).
Une "connexion appropriée" est juste une connexion qui a déjà a l'accès à la base de données en utilisant les informations correctes (telles que l'instance de la base de données, les informations d'identification, et éventuellement d'autres éléments).
De même, il y a un appel proche de l'API (4) qui n'appelle pas réellement la fonction réel Il ne ferme pas la connexion, mais la place dans le pool (5) pour une utilisation ultérieure. À un moment donné, les connexions du pool peuvent être en fait fermé (6).
C'est une explication assez simpliste. Les implémentations réelles peuvent être capables de gérer des connexions à plusieurs serveurs et plusieurs comptes d'utilisateurs, elles peuvent pré-allouer une certaine base de connexions afin que certaines soient prêtes immédiatement, et elles peuvent effectivement fermer les anciennes connexions lorsque le schéma d'utilisation se calme.
La mise en commun des connexions aux bases de données consiste simplement à mettre en cache les connexions aux bases de données afin qu'elles puissent être réutilisées la prochaine fois pour réduire le coût de l'établissement d'une nouvelle connexion chaque fois que nous voulons nous connecter à une base de données.
Le concept de mise en commun des connexions n'existe pas seulement en Java mais dans de nombreux langages de programmation. La création d'un nouvel objet de connexion étant coûteuse, un nombre fixe de connexions est établi et maintenu dans le cycle de vie, créant ainsi un pool virtuel. Java Juste ( http://javajust.com/javaques.html ) voir la question 14 sur cette page
- Réponses précédentes
- Plus de réponses