Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O pooling de conexões sensível ao driver é uma nova funcionalidade do Gestor de Drivers no Windows 8. O agrupamento de conexões consciente do driver permite aos desenvolvedores de drivers personalizar o comportamento do agrupamento de conexões em seus drivers ODBC.
Observação
O pooling de ligações otimizado para o driver não é suportado com a biblioteca de cursores. Uma aplicação receberá uma mensagem de erro se tentar ativar a biblioteca de cursores via SQLSetConnectAttr, quando o pool de conexões com reconhecimento do driver estiver ativado.
O pooling de conexões gerido pelo driver resolve os seguintes problemas relacionados com o pooling de conexões do Driver Manager:
Fragmentação de Pools O Gerenciador de Drivers só retorna uma ligação do pool se houver uma correspondência exata com a cadeia de ligação de um novo pedido de conexão. Uma das razões para o Driver Manager exigir uma correspondência exata é que não compreende todas as palavras-chave de ligação específicas do driver e o seu valor. No entanto, alguns valores de palavras-chave de string de ligação (como o nome da base de dados) podem não exigir uma correspondência exata, uma vez que o driver pode alterar a base de dados em menos do que o tempo necessário para abrir uma nova ligação (a diferença de tempo exata depende da fonte de dados). E, diferenças em alguns atributos de ligação (como SQL_ATTR_CURRENT_CATALOG) podem demorar mais tempo a mudar do que diferenças noutros atributos (como SQL_ATTR_LOGIN_TIMEOUT). Isto também pode impedir que o Driver Manager use a ligação reutilizável e de menor custo do pool. Quando um driver tem de criar muitas novas ligações, o desempenho de uma aplicação pode diminuir e a escalabilidade da fonte de dados pode diminuir. A fragmentação do pool pode ser reduzida com o pooling de conexões orientado pelo driver, porque o driver pode estimar melhor o custo de reutilizar uma conexão no conjunto para um pedido de ligação.
Sem considerar a preferência de aplicação Algumas fontes de dados podem abrir novas ligações de forma eficiente (em comparação com a redefinição de alguns atributos), por isso, uma aplicação pode preferir abrir uma nova ligação em vez de tentar reutilizar uma ligação ligeiramente incompatível do pool e redefinir alguns valores (embora isto possa ser mais lento durante a fase de inicialização do pool de ligações). Mas algumas aplicações podem manter a carga do servidor menor e abrir menos ligações, embora possa haver um custo maior para corrigir as incompatibilidades para o comportamento correto. Sem um pool de conexões sensível ao driver, não pode especificar este tipo de preferência de forma eficaz, porque o "Driver Manager" não reconhece todos os atributos de ligação específicos do driver. O pooling de conexões consciente do driver permite que o driver obtenha a preferência do utilizador (com um atributo específico do driver chamado SQLSetConnectAttr), para que possa estimar melhor o custo de reutilizar uma ligação do pool com base na preferência do utilizador.
Para mais informações sobre pooling de ligações ciente do driver, consulte Desenvolvimento de Consciência de Pooling de Ligações num Driver ODBC.
Determinação do Suporte ao Condutor
O pooling de ligações sensível ao driver é uma funcionalidade opcional que o driver pode não suportar. Para determinar se um driver é compatível, use o SQL_DRIVER_AWARE_POOLING_SUPPORTED InfoType do SQLGetInfo.
Como Ativar Driver-Aware Pooling de Ligações
Uma aplicação pode usar a consciência de pooling de ligações de um driver ao definir o atributo SQL_ATTR_CONNECTION_POOLING para SQL_CP_DRIVER_AWARE com SQLSetEnvAttr. Se um driver não suportar o suporte ao pooling de conexões, será utilizada a gestão de conexões do Gestor de Conexões (como se SQL_CP_ONE_PER_HENV tivesse sido especificado, em vez de SQL_CP_DRIVER_AWARE). As aplicações ODBC 2.x e 3.x podem ativar esta funcionalidade.