Partage via


Regroupement de connexions prenant en charge les pilotes

Le regroupement de connexions prenant en charge le pilote est une nouvelle fonctionnalité du Gestionnaire de pilotes dans Windows 8. Le regroupement de connexions prenant en charge le pilote permet aux enregistreurs de pilotes de personnaliser le comportement de regroupement de connexions dans leur pilote ODBC.

Remarque

Le regroupement de connexions prenant en charge le pilote n’est pas pris en charge avec la bibliothèque de curseurs. Une application reçoit un message d’erreur s’il tente d’activer la bibliothèque de curseurs via SQLSet Connecter Attr, lorsque le regroupement de connexions prenant en charge le pilote est activé.

Le regroupement de connexions prenant en charge le pilote résout les problèmes suivants liés au regroupement de connexions du Gestionnaire de pilotes :

Fragmentation du pool Le Gestionnaire de pilotes retourne uniquement une connexion à partir du pool s’il s’agit d’une correspondance exacte avec la chaîne de connexion d’une nouvelle demande de connexion. L’une des raisons pour lesquelles le Gestionnaire de pilotes doit exiger une correspondance exacte est que le Gestionnaire de pilotes ne comprend pas chaque chaîne de connexion mot clé spécifique au pilote et sa valeur. Toutefois, certaines valeurs chaîne de connexion mot clé (telles que le nom de la base de données) peuvent ne pas nécessiter une correspondance exacte, car le pilote peut modifier la base de données en moins du temps nécessaire pour ouvrir une nouvelle connexion (la différence de temps exacte dépend de la source de données). Et, les différences dans certains attributs de connexion (tels que SQL_ATTR_CURRENT_CATALOG) peuvent prendre plus de temps que les différences dans d’autres attributs (par exemple, SQL_ATTR_LOGIN_TIMEOUT). Cela peut également empêcher le Gestionnaire de pilotes d’utiliser la connexion réutilisable à moindre coût du pool. Lorsqu’un pilote doit créer de nombreuses nouvelles connexions, les performances d’une application peuvent diminuer et la scalabilité de la source de données peut diminuer. La fragmentation du pool peut être réduite avec le regroupement de connexions prenant en charge le pilote, car un pilote peut mieux estimer le coût de la réutilisation d’une connexion dans le pool pour une demande de connexion.

Aucune considération de préférence d’application Certaines sources de données ne peuvent ouvrir efficacement de nouvelles connexions (par rapport à la réinitialisation de certains attributs), donc une application peut préférer ouvrir une nouvelle connexion au lieu d’essayer de réutiliser une connexion légèrement incompatible à partir du pool et de réinitialiser certaines valeurs (bien que cela puisse être plus lent pendant l’initialisation du pool de connexions). Toutefois, certaines applications peuvent réduire la charge du serveur et ouvrir moins de connexions, bien qu’il y ait un coût plus élevé pour corriger les incompatibilités pour un comportement correct. Sans regroupement de connexions prenant en charge le pilote, vous ne pouvez pas spécifier ce type de préférence efficacement, car le Gestionnaire de pilotes ne reconnaît pas tous les attributs de connexion spécifiques au pilote. Le regroupement de connexions prenant en charge le pilote permet à un pilote d’obtenir la préférence utilisateur (avec un attribut spécifique au pilote de SQLSet Connecter Attr) afin qu’il puisse mieux estimer le coût de la réutilisation d’une connexion à partir du pool en fonction de la préférence d’un utilisateur.

Pour plus d’informations sur le regroupement de connexions prenant en charge les pilotes, consultez Développement de la sensibilisation au pool d’Connecter ion dans un pilote ODBC.

Détermination de la prise en charge des pilotes

Le regroupement de connexions prenant en charge les pilotes est une fonctionnalité facultative qu’un pilote peut ne pas prendre en charge. Pour déterminer si un pilote le prend en charge, utilisez l’SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType de SQLGetInfo.

Comment activer le regroupement de Connecter ion prenant en compte les pilotes

Une application peut utiliser la prise en charge du regroupement de connexions d’un pilote en définissant l’attribut SQL_ATTR_CONNECTION_POOLING sur SQL_CP_DRIVER_AWARE avec SQLSetEnvAttr. Si un pilote ne prend pas en charge la prise en charge de la prise en charge de la prise en charge du pool de connexions, le regroupement de connexions Driver Manager est utilisé (comme si SQL_CP_ONE_PER_HENV avait été spécifié, au lieu de SQL_CP_DRIVER_AWARE). Les applications ODBC 2.x et 3.x peuvent activer cette fonctionnalité.

Voir aussi

Développement d’un pilote ODBC