Servizi e pooling di risorse OLE DB
Per un efficace utilizzo del pooling OLE DB o di qualsiasi servizio OLE DB, è necessario che il provider supporti l'aggregazione per tutti gli oggetti. Si tratta di un requisito di tutti i provider OLE DB versione 1.5 o successiva ed è indispensabile per l'utilizzo dei servizi. Se i provider non supportano l'aggregazione, non sarà possibile eseguire il pooling e non verrà fornito alcun servizio aggiuntivo.
Per l'esecuzione del pooling, è necessario che i provider supportino il modello di threading Free. Il pool di risorse determina il modello di threading del provider in base alla proprietà DBPROP_THREADMODEL.
Se il provider presenta uno stato di connessione globale che può variare mentre l'origine dati è in uno stato inizializzato, è opportuno che il provider supporti la nuova proprietà DBPROP_RESETDATASOURCE. Questa proprietà viene chiamata prima di riutilizzare una connessione e offre al provider l'opportunità di annullare lo stato prima del successivo utilizzo. Se il provider non è in grado di annullare uno stato associato alla connessione, potrà restituire DBPROPSTATUS_NOTSETTABLE per la proprietà e la connessione non verrà riutilizzata.
È opportuno che i provider che eseguono la connessione a un database remoto e che sono in grado di rilevare l'eventuale perdita di tale connessione supportino la proprietà DBPROP_CONNECTIONSTATUS. Questa proprietà consente ai servizi OLE DB di rilevare le connessioni interrotte e di verificare che non vengano restituite al pool.
Infine, l'integrazione automatica delle transazioni in genere non funziona se non viene implementata allo stesso livello del pooling. È opportuno che i provider che supportano l'inserimento automatico delle transazioni supportino anche la disattivazione di tale inserimento mediante l'esposizione della proprietà DBPROP_INIT_OLEDBSERVICES e la disattivazione dell'inserimento se DBPROPVAL_OS_TXNENLISTMENT è deselezionata.