Pool de Conexões
O pool de conexões é uma técnica usada pelos servidores de aplicação para melhorar o desempenho e a eficiência no gerenciamento de conexões com o banco de dados.
Quando um aplicativo precisa se conectar a um banco de dados, ele normalmente estabelece uma nova conexão para realizar suas operações. No entanto, estabelecer uma nova conexão a cada vez que uma operação é necessária pode ser custoso em termos de recursos e tempo de processamento. É aí que o pool de conexões entra em jogo.
O pool de conexões funciona mantendo um conjunto de conexões de banco de dados pré-estabelecidas e prontas para serem reutilizadas. Em vez de fechar a conexão após cada solicitação, o servidor de aplicação libera a conexão de volta para o pool, onde ela pode ser reutilizada por outras solicitações.
Quando um novo pedido chega, o servidor de aplicação atribui uma conexão disponível do pool ao aplicativo. Isso elimina a necessidade de estabelecer uma nova conexão e reduz significativamente a sobrecarga de recursos e o tempo de latência.
O pool de conexões também gerencia automaticamente a vida útil das conexões. Por exemplo, se uma conexão estiver inativa por um longo período de tempo, o pool pode fechá-la para liberar recursos. Além disso, se o pool estiver cheio e todas as conexões estiverem em uso, o servidor de aplicação pode criar novas conexões apenas para atender a requisição em andamento.
Em resumo, o pool de conexões é uma abordagem eficiente para gerenciar as conexões com o banco de dados, minimizando o tempo de estabelecimento de conexões e maximizando o uso dos recursos disponíveis. Isso ajuda a melhorar o desempenho e a escalabilidade dos aplicativos, especialmente em cenários onde múltiplas solicitações concorrentes são comuns.
Pool de conexões PHServer na Prática
O serviço de aplicação trabalha sempre com duas bases de dados em suas requisições. Sempre que um requisição é recebida, é realizada consulta das informações do PHERP, junto a base de dados do PHServerconf, através do ID da sessão informado na requisição. Com os dados do PHERP, é realizado acesso a base de dados e execução do procedimento da requisição.
Sendo assim o são realizadas duas conexões, a primeira na base de dados do PHServerConf e a segunda na Base de dados do PHERP.
Para otimizar o acesso as bases de dados, trabalhamos com dois o pools de conexões, que mantem a quantidade de conexões pré-definidas, prontas para o uso. Dessa forma, o servidor de aplicação mantem um pool de conexão para as conexões com o PHServerConf e outro pool para as conexões com o PHERP.
Fluxo de Funcionamento do Pool de Conexões