Compartilhar via


Pooling de recursos e serviços de banco de dados OLE

Para funcionar bem com o pool de OLE DB ou com qualquer serviço de OLE DB, seu provedor precisa permitir a agregação de todos os objetos. Esse é um requisito de qualquer provedor OLE DB 1.5 ou posterior. É essencial para aproveitar os serviços. Provedores que não permitem agregação não podem ser agrupados e nenhum serviço adicional é fornecido.

Para serem agrupados, os provedores precisam permitir o modelo de thread gratuito. O pool de recursos determina o modelo de thread do provedor de acordo com a propriedade DBPROP_THREADMODEL.

Se o provedor tiver um estado de conexão global que pode mudar enquanto a fonte de dados estiver em um estado inicializado, ele permitir a nova propriedade DBPROP_RESETDATASOURCE. Essa propriedade é chamada antes que uma conexão seja reutilizada e permite que o provedor limpe o estado antes do próximo uso. Se o provedor não puder limpar algum estado associado à conexão, ele poderá retornar DBPROPSTATUS_NOTSETTABLE para a propriedade e a conexão não será reutilizada.

Provedores que se conectam a um banco de dados remoto e podem detectar se essa conexão pode ser perdida devem permitir a propriedade DBPROP_CONNECTIONSTATUS. Essa propriedade permite que os serviços OLE DB detectem conexões mortas e garantem que elas não sejam retornadas ao pool.

Por fim, a inscrição automática de transações geralmente não funciona a menos que seja implementada no mesmo nível em que ocorre o pool. Os provedores compatíveis com inscrição automática de transações devem premitir desabilitação desse alistamento expondo a propriedade DBPROP_INIT_OLEDBSERVICES e desabilitando a inscrição se o DBPROPVAL_OS_TXNENLISTMENT for desmarcado.

Confira também

Técnicas de provedor avançadas