Pool de conexões
Mas o que vem a ser um Pool de Conexões?
Toda vez uma aplicação acessa um banco de dados é criada uma nova conexão com esse banco através do comando “(SqlConnection connection = new SqlConnection(strConn))”,por exemplo, para isso a String de conexão precisa ser analisada e validada, a conexão devera ser autenticada contra o servidor entre outras transações, e isso consome recursos, se for levado em consideração o tamanho da consulta realizada.
Para minimizar o custo da abertura das conexões foi implementado o Pool de Conexões. Um repositório que mantém uma lista de conexões abertas para serem reutilizadas. Podendo uma aplicação conter vários Pools de conexão. Para cada String de conexão será criado um Pool de Conexão, na primeira vez que a aplicação requisitar uma conexão para aquela String. Se a aplicação requisitar uma nova conexão para uma String diferente será criado um novo Pool. Isso deixa um ou vários canais de conexão abertos, não sendo necessário todo o procedimento custoso para acesso ao banco de dados.
Figura 01 – Arquitetura de conexão sem pool
Figura 02 – Arquitetura de conexão com pool gerenciado pelo TomCat.
A seguir um exemplo em C# de conexão com o banco de dados utilizando o Pool de conexões: using (SqlConnection connection = new SqlConnection( "Integrated Security=SSPI;Initial Catalog=Northwind")) { connection.Open(); //O Pool A é criado. }
using