Services et regroupement des ressources OLE DB
Pour fonctionner correctement avec le regroupement OLE DB ou avec n’importe quel service OLE DB, votre fournisseur doit prendre en charge l’agrégation de tous les objets. Il s’agit d’une exigence de n’importe quel fournisseur OLE DB 1.5 ou version ultérieure. Il est essentiel de tirer parti des services. Les fournisseurs qui ne prennent pas en charge l’agrégation ne peuvent pas être mis en pool et aucun service supplémentaire n’est fourni.
Pour être mis en pool, les fournisseurs doivent prendre en charge le modèle de thread libre. Le pool de ressources détermine le modèle de thread du fournisseur en fonction de la propriété DBPROP_THREADMODEL.
Si le fournisseur a un état de connexion global qui peut changer pendant que la source de données est dans un état initialisé, il doit prendre en charge la nouvelle propriété DBPROP_RESETDATASOURCE. Cette propriété est appelée avant qu’une connexion soit réutilisée et donne au fournisseur la possibilité de nettoyer l’état avant son utilisation suivante. Si le fournisseur ne peut pas nettoyer un état associé à la connexion, il peut retourner DBPROPSTATUS_NOTSETTABLE pour la propriété et la connexion ne sera pas réutilisée.
Les fournisseurs qui se connectent à une base de données distante et peuvent détecter si cette connexion peut être perdue doit prendre en charge la propriété DBPROP_CONNECTIONSTATUS. Cette propriété permet aux services OLE DB de détecter les connexions mortes et de s’assurer qu’elles ne sont pas retournées au pool.
Enfin, l’inscription automatique des transactions ne fonctionne généralement pas, sauf si elle est implémentée au même niveau que celui du regroupement. Les fournisseurs qui prennent en charge l’inscription automatique des transactions doivent prendre en charge la désactivation de cette inscription en exposant la propriété DBPROP_INIT_OLEDBSERVICES et en désactivant l’inscription si le DBPROPVAL_OS_TXNENLISTMENT est désélectionné.