OLE DB-Ressourcenpooling und -Dienste
Damit der Anbieter einwandfrei mit OLE DB-Pooling oder anderen OLE DB-Diensten funktioniert, muss er das Aggregieren sämtlicher Objekte unterstützen. Diese Anforderung gilt für OLE DB-Anbieter, Version 1.5, oder höher. Dieser Faktor ist für die optimale Nutzung der Dienste unerlässlich. Anbieter, die keine Aggregierung unterstützen, können weder in einem Pool zusammengefasst werden noch zusätzliche Dienste nutzen.
Zum Pooling müssen Anbieter das Freethreadmodell unterstützen. Das Threadmodell des Anbieters wird vom Ressourcenpool anhand der DBPROP_THREADMODEL-Eigenschaft ermittelt.
Wenn der Anbieter über einen globalen Verbindungszustand verfügt, der sich während des Initialisierungszustands der Datenquelle ändern kann, sollte er die neue DBPROP_RESETDATASOURCE-Eigenschaft unterstützen. Diese Eigenschaft wird vor der Wiederverwendung einer Verbindung aufgerufen und bietet dem Anbieter die Möglichkeit, seinen Zustand vor der erneuten Verwendung zu bereinigen. Falls ein verbindungsabhängiger Zustand vom Anbieter nicht bereinigt werden kann, kann DBPROPSTATUS_NOTSETTABLE für die Eigenschaft zurückgegeben werden, sodass die Verbindung nicht erneut verwendet wird.
Anbieter, die mit einer Remotedatenbank verbunden werden und wahlweise feststellen können, ob diese Verbindung unterbrochen wird oder nicht, sollten die DBPROP_CONNECTIONSTATUS-Eigenschaft unterstützen. Diese Eigenschaft ermöglicht es den OLE DB-Diensten, inaktive Leitungen zu ermitteln und sicherzustellen, dass sie nicht an den Pool zurückgegeben werden.
Die automatische Eintragung von Transaktionen funktioniert letztendlich nur dann, wenn sie auf derselben Ebene wie das Pooling implementiert wird. Anbieter, die selbst die automatische Eintragung von Transaktionen unterstützen, sollten die Deaktivierung dieser Eintragung ermöglichen, indem sie die DBPROP_INIT_OLEDBSERVICES-Eigenschaft zur Verfügung stellen, und die Eintragung deaktivieren, wenn DBPROPVAL_OS_TXNENLISTMENT deaktiviert wird.