Dúvida com relação a Pool de Conexões

Pessoal, mais uma vez estou aqui com minhas dúvidas sobre pool de conexões…

Minha dúvida agora é mais conceitual: Pelo que entendi, o pool não cria N conexões com o banco, na verdade cria somente UMA conexão que é compartilhada por todas as conexões do pool, as quais nào são conexões “verdadeiras”, apenas algum tipo de referência à conexão real.

Está certo o que eu entendi ou estou viajando!?

Obrigado!

Mas Gandalf, onde ficou a sua sabedoria?

Brincadeira :stuck_out_tongue:

O pool cria um conjunto de conexões e compartilha elas entre os clientes do pool (quem está pedindo as conexões), normalmente eles tem uma configuração onde você define o tamanho mínimo e o tamanho máximo do pool.

[quote=Maurício Linhares]Mas Gandalf, onde ficou a sua sabedoria?

Brincadeira :stuck_out_tongue:

O pool cria um conjunto de conexões e compartilha elas entre os clientes do pool (quem está pedindo as conexões), normalmente eles tem uma configuração onde você define o tamanho mínimo e o tamanho máximo do pool.[/quote]

Ainda sou Gandalf, o Cinza. Ainda não me tornei Gandalf, o Branco, mas estou estudando para isso :slight_smile:

É que criei um ConnectionPool aqui usando o DBCP do Jakarta e fiz um Servlet teste aqui que cria várias conexões em um for e imprime quantas estão abertas no console… não fechei as conexões de propósito, para testar o seguinte:
No shell, fiz: (meu banco é postgresql)

ps aux | grep postgres

E mostra apenas UMA conexão vinda do IP da minha máquina. Por isso fiz a pergunta acima…

Alguma idéia?

Obrigado!

Coloque a propriedade “minIdle” do BasicDataSource pra 5 e na hora de executar chame os métodos “getNumActive()” e “getNumIdle()” pra ver quantas conexões ele está realmente mantendo.

Eu fiz quase isso que vc falou, faltou apenas setar o minIdle. agora sim dá pra ver várias conexões. Meu minIdle não estava inicializado então acho que ele fechava todas as conexões, não deixava nenhuma como idle…

Muito obrigado pela ajuda Maurício!