Toda vez que uma requisição é feita, o servidor deve abrir uma conexão com o banco de dados e fecha-lá no final da requisição, ficar abrindo e fechando uma conexão com o banco de dados gera um tempo de latência muito grande e torna o sistema mais lento, e aplicações Web que recebem um número muito grande de acessos simultâneos podem ter problemas em manter a aplicação funcionando por causa desse excesso de conexões.
Para evitar esses problemas é recomendado o uso de Conexões Pool para as conexões com o banco de dados. Conexão Pool é uma camada que fica entre a camada intermediária que faz as conexões com o banco de dados e o próprio servidor de banco de dados. Em aplicações Java podemos citar uma classe java intermediária e o banco seria representado por uma conexão com o driver JDBC que se conectaria com algum servidor de banco de dados.
Em uma conexão sem o Pool, a classe Java realiza uma requisição ao driver JDBC e esse drive abre uma conexão com o servidor do banco de dados.
A ideia atrás do Pool é do cliente conseguir realizar uma conexão com o banco quase da mesma forma que usando o driver JDBC, pois o objetivo final é o mesmo, conseguir realizar uma conexão com o banco de dados. Então a camada do Pool irá ficar entre a camada intermediária e a camada de conexão que é o driver JDBC.
Podemos observar o Pool como uma "piscina de conexões", basicamente o Pool já mantém um certo número de conexões já abertas com o banco de dados. Quando o intermediário faz a requisição de uma conexão usando o Pool, invés de abrir uma nova conexão com o banco usando o driver JDBC, ele simplesmente pega uma das conexões que o Pool já mantinha aberta e marca como alocada para aquele usuário. Desta forma o usuário usa a conexão normalmente e quando não precisa mais da conexão, em vez de fechar a conexão ela é mantida aberta, mas é marcada como disponível.
Quando o número de conexões abertas simultaneamente é maior que o número de conexões mantidas abertas pelo Pool, o Pool abre uma nova conexão com o banco de dados, se o número máximo de conexões reais já tenham sido abertas, então é lançado uma excessão.
As vantagens da conexão Pool:
- Otimizar o tempo, pois, evita abri e fechar conexões reais com o banco de dados.
- Permite atender um grande número de requisições sem a necessidade de manter um número tão grande de conexões com o banco de dados. O número de conexões do Pool tem que ser maior ou igual ao número de conexões simultâneas.
Se tiverem dúvidas realizem um INSERT nos comentários e depois dê um COMMIT que depois respondo.
Abraço e bons estudos.
Comentários
Postar um comentário