Pool de conexões – desenvolvimento de aplicativos móveis, serviços da Web, arquitetura SOA - Tecnologia
Ir para o conteúdo

Pool de conexões – desenvolvimento de aplicativos móveis, serviços da Web, arquitetura SOA

  • por

Anúncios

O que é pool de conexões?

O pool de conexões permite a reutilização de conexões existentes para reduzir a sobrecarga de criação e descarte contínuos de conexões que possuem a mesma configuração. Em outras palavras, abrir e fechar conexões que usam a mesma string de conexão e credenciais pode reutilizar uma conexão disponível no pool. Aplicativos típicos usam os mesmos objetos de conexão para buscar e atualizar continuamente dados de um banco de dados. O pool de conexões fornece um nível muito mais alto de desempenho, eliminando a necessidade de o banco de dados criar e descartar conexões constantemente. Os pools de conexão são separados por processo, domínio de aplicativo e string de conexão. Para strings de conexão que usam segurança integrada, um pool separado é criado para cada identidade exclusiva.

Controlando opções de pool de conexões

O pool de conexões é ativado por padrão ao criar objetos de conexão ADO.NET. Você pode controlar o comportamento do pool de conexões (ou desabilitar completamente o pool) definindo palavras-chave de cadeia de conexão específicas para o pool de conexões. Por exemplo, para desabilitar especificamente o pool de conexões, defina Pooling=False em sua string de conexão. A Tabela 5-7 fornece uma lista de palavras-chave de cadeia de conexão que podem ser usadas para controlar como uma conexão específica interage com o pool de conexões. Nem todas as palavras-chave estão disponíveis para todos os provedores. Por exemplo, o provedor OLE DB controla o pool de conexões (também conhecido como pool de recursos ou sessões) com base no valor definido para a palavra-chave OLE DB Services na string de conexão.

Pool de conexão de tabela Cadeia de conexãoAlém das propriedades da cadeia de conexão que controlam o comportamento do pool de conexões, também há métodos disponíveis em objetos de conexão que também podem afetar o pool. Os métodos disponíveis normalmente são usados ​​quando você está fechando conexões em seu aplicativo e sabe que eles não serão usados ​​novamente. Isso limpa o pool de conexões descartando as conexões em vez de devolvê-las ao pool quando elas são fechadas. Todas as conexões que já estiverem no pool e abertas serão descartadas na próxima vez que forem fechadas. A Tabela 5-8 lista os métodos disponíveis para interagir com pools de conexão.

Configurando Conexões para Usar o Pool de Conexões

Por padrão, todos os provedores de dados .NET Framework disponíveis no ADO.NET têm o pool de conexões ativado, mas o nível de controle disponível para trabalhar com o pool de conexões varia de acordo com o provedor que está sendo usado.

Configurando o pool de conexões com conexões do SQL Server

Por padrão, o objeto SqlConnection usa automaticamente o pool de conexões. Cada vez que você chama Sqlconnection.Open com uma string de conexão exclusiva, um novo pool é criado. Controle o comportamento do pool de conexões definindo as palavras-chave do pool de conexões na string de conexão conforme descrito anteriormente na Tabela 5-7. Por exemplo, considere uma conexão em que você deseja definir o tamanho mínimo do pool. Ao atribuir um valor maior que zero à palavra-chave Mîn Pool Size, você garante que o pool não será destruído até que o aplicativo termine. Para definir o tamanho mínimo do pool como 5, use uma string de conexão semelhante à seguinte:

Data Source=SqlServerName;Initial Catalog=DatabaseName; Segurança integrada=Verdadeiro;Tamanho mínimo do pool=5

O tamanho mínimo do pool é 0 por padrão, o que significa que cada conexão precisa ser criada e inicializada conforme solicitado, aumentando o tamanho mínimo do pool na string de conexão, o número indicado de conexões é criado e pronto para uso, o que pode reduzir o tempo que leva para estabelecer a conexão nessas conexões iniciais.

Configurando o Pool de Conexões com o Oracle Connections

As conexões que usam o Provedor de Dados .NET Framework para Oracle usam automaticamente o pool de conexões por padrão. Você pode controlar como a conexão usa o pool definindo palavras-chave da string de conexão. A Tabela 5-10 detalha as palavras-chave da string de conexão disponíveis para alterar as atividades do pool de conexões.

Tratamento de erros de conexão

Quando o SQL Server retorna um aviso ou um erro, o Provedor de Dados .NET Framework para SQL Server cria e lança uma SqlException que você pode capturar em seu aplicativo para lidar com o problema. Quando SqlException for lançado, inspecione a propriedade SqlException.Errors para acessar a coleção de erros que são retornados do servidor SQL. A propriedade SqlException.Errors é uma classe SqlErrorCollection (uma coleção de classes SqlError) que sempre contém pelo menos um objeto SqlError.

MAIS INFORMAÇÕES Erros do SQL Server

SqlConnection permanecerá aberto para mensagens com um nível de severidade de 19 ou menos, mas normalmente fechará automaticamente quando a severidade for 20 ou superior.

Resumo

  • O pool de conexões é habilitado por padrão.
  • As opções de pool de conexão são definidas na string de conexão, exceto para o provedor ODBC, que usa a caixa de diálogo Administrador de fonte de dados ODBC no Windows.
  • Um objeto SqlException é criado quando um erro é detectado no servidor SQL.
  • Cada instância de uma exceção SqlException contém pelo menos um aviso SqlError que contém as informações de erro reais do servidor.
  • A Autenticação do Windows (também chamada de Segurança Integrada) é o método sugerido para se conectar aos dados com segurança.
  • Armazene strings de conexão que contenham informações confidenciais no arquivo de configuração do aplicativo e criptografe todas as configurações que contenham informações confidenciais.