Na própria aula, cada vez que o instrutor executa o método main da classe TestaPoolConexoes, o número de conexões só aumentam. 15, 30... etc.
Na própria aula, cada vez que o instrutor executa o método main da classe TestaPoolConexoes, o número de conexões só aumentam. 15, 30... etc.
Olá Wellington, tudo bem com você?
Peço desculpas pela demora em obter retorno.
A connection pool funciona como uma camada intermediária entre a aplicação e o banco de dados e seu propósito é melhorar a performance nas operações de banco de dados que são custosas para o sistema.
Ela mantém algumas conexões abertas que podem ser solicitadas pela aplicação para fazer consultas e comandos no banco de dados, tirando a necessidade de cada vez que a aplicação precisar fazer alguma consulta, abra uma nova conexão, prepare um comando, execute e feche a conexão, pois a conexão já vai estar sempre aberta. Quando uma conexão é fechada da aplicação com a connection pool a conexão não é fechada de verdade, a connection pool apenas marca essa conexão como disponível para uso de outro componente ou aplicação.
Quando são abertas conexões além das permitidas pela connection pool podem acontecer duas coisas:
1 - Quando ainda existem espaços para conexões disponíveis, a connection pool cria uma nova conexão para uso da aplicação.
2 - Quando não existem espaços, é jogada uma exceção.
Portanto, a connection pool mantém conexões sempre abertas e espera que a aplicação requisite o uso delas, a fim de melhorar a performance, por não ter que ficar abrindo e fechando conexões com o banco de dados.
Para se aprofundar ainda mais, recomendo a leitura desse artigo sobre como a pool de conexões melhora a performance de uma aplicação
Fico à disposição.
Um grande abraço e bons estudos!