Qu'est-ce que le regroupement de connexions?
Le regroupement de connexions est le terme utilisé pour la gestion des connexions des utilisateurs effectuant des requêtes sur des bases de données. Bien que de nombreux utilisateurs ne le remarquent peut-être pas, lorsqu'un grand nombre d'utilisateurs souhaitent accéder à un serveur d'applications hébergeant une base de données, le volume de connexions peut devenir presque impossible pour un serveur de maintenir une bonne connexion avec toutes les connexions à ces temps. L'ingénierie logicielle permettant le regroupement des connexions permet à un serveur de gérer correctement les connexions, quel que soit le nombre élevé de connexions effectuant des requêtes, et permet de répondre à ces requêtes à une vitesse inférieure à la seconde.
Les connexions doivent être de configuration identique pour être incluses dans un pool de connexions. La plupart des programmes de pool de connexions de serveurs utilisent différents pools de connexions simultanément. Lorsqu'un utilisateur cherche à se connecter, il est affecté à un pool avec des configurations similaires, si de l'espace est disponible. S'il n'y a pas d'espace disponible, la demande est mise en file d'attente pour être affectée dès qu'elle devient disponible. Un utilisateur peut ne pas se rendre compte qu'il est dans une file d'attente, mais simplement remarquer que la base de données semble être lente en réponse à la requête; Cependant, dans le back-office des systèmes de gestion de base de données, les pools sont analysés pour permettre à l'utilisateur de trouver une connexion ouverte. La plupart des programmes de regroupement de connexions ont une liste définie du nombre maximum d'utilisateurs par pool et des durées minimales pour lesquelles une connexion peut rester inactive avant que la connexion ne soit interrompue et que la disponibilité ne soit renvoyée au pool.
Lors de la création d'un pool de connexions, un certain nombre d'objets de connexion sont créés et ajoutés au pool. Pour qu'un pool soit considéré comme actif, il faut un nombre minimal d'objets. Ces objets de connexion sont les sièges de disponibilité qui lient une connexion au pool. Ils peuvent être créés et ajoutés au pool selon les besoins, dans la limite du nombre maximal autorisé dans un pool. Lorsque les utilisateurs sont satisfaits de leur interrogation et déposent leur objet de connexion, ceux-ci sont renvoyés au pool par les programmes de mise en pool de connexions pour être utilisés par un autre utilisateur ou par le même utilisateur lors de son retour.
Un facteur pouvant ralentir les temps de réponse dans le pooling de connexion est ce qu'on appelle la fragmentation de pool. La fragmentation des pools est généralement due à la sécurité intégrée ou à un trop grand nombre de bases de données résidant sur un ensemble de serveurs existant. Un système de gestion de base de données authentifiant les utilisateurs puis les mettant en file d'attente ou les affectant à des objets de pool de connexions existants consomme de la mémoire. De plus, une conception système plus stricte pour les accès élimine souvent le problème du trop grand nombre de bases de données. La conception du système de sécurité intégré des programmes Windows dans de nombreux programmes de regroupement de connexions exige qu'un seul utilisateur Windows réside dans un pool à la fois. Cela peut être clarifié par la création de davantage de pools pour prendre en charge les demandes supplémentaires nécessitant une réponse simultanée.
Si le programme de mise en pool de connexions détecte qu'un utilisateur est inactif au-delà d'une période définie ou que la connexion a été interrompue, il renverra l'objet de connexion au pool sous la forme d'un objet non valide. Si un serveur tombe en panne alors qu'une connexion est en cours, la connexion peut toujours être retirée même si le pool de connexions n'est pas au courant de la connexion coupée. Les programmes de pool de connexions ActiveX, généralement ensuite, effacent le pool de ces connexions lorsque le serveur est redémarré.