nao eh a melhor solucaol, eh a unica
se vc nao usar o connection pool, seu sistema vai ficar lento de tatnas conexoes tcp/ip que voce for ficar abrindo e fechando com o banco de dados, sem contar o overhead pro BD, que pode nao aguentar
A outra solução é voce usar um banco de dados embarcado, ai o custo de se conectar é quase nulo.
Ou então um driver JDBC que não seja de camada 4 e use JNI para se conectar ao banco de forma mais eficiente que tcp/ip (named pipes, shm, unix socket, etc).
Se tua aplicação é para intranet, ou um ambiente controlado, uma solução um pouco melhor que pool seria usar 1 conecção por sessão. Mas cuidado, use somente em ambientes controlados!!
Moral da historia, a solução genérica é usar um pool, não só para conecções, mas para a maioria dos recursos que demoram para ficarem disponiveis.
concordo com o Paulo…porém, o programador deve se atentar a sempre estar “devolvendo” a conexão, pois senão ficam várias conexões perdidas, e se o cara faz uma conectionpool limitada, uma hora “acaba” as conexões dele e o código terá que ser verificado para que seja devolvida as conexoes quando não estiver acontecendo.
[quote=“richardpeder”]concordo com o Paulo…porém, o programador deve se atentar a sempre estar “devolvendo” a conexão, pois senão ficam várias conexões perdidas, e se o cara faz uma conectionpool limitada, uma hora “acaba” as conexões dele e o código terá que ser verificado para que seja devolvida as conexoes quando não estiver acontecendo.
Atente-se a isso.
ate mais…[/quote]
O DBCP tem 1 leak checker muito bom. Já me ajudou a resolver vários leaks de código que não é meu.
[quote=“richardpeder”]concordo com o Paulo…porém, o programador deve se atentar a sempre estar “devolvendo” a conexão, pois senão ficam várias conexões perdidas, e se o cara faz uma conectionpool limitada, uma hora “acaba” as conexões dele e o código terá que ser verificado para que seja devolvida as conexoes quando não estiver acontecendo.
Atente-se a isso.
ate mais…[/quote]
Geralmente um Connection Pool bem implementado tem um idle timeout para prevenir que os recursos da maquina se esgotem. Assim, se vc ficar muito tempo sem fazer nada com uma conexão o próprio connection pool resgata a conexão e grava no log que vc está fazendo as coisas de forma incorreta.
É lógico que é boa pratica de programação fechar os recursos que vc abre, mas de qq forma o connection pool pode te dar alguns lembretes caso vc se esqueça.
Eu andei lendo algumas dúvidas pelo site.
Entendi a finalidade do Conection Pool, porém :oops: eu não sei, não tenho idéia de como fazer um Conection Pool …
Será que alguém poderia me ajudar com algum fonte ??? ou alguma expelicação ???
Voce nao precisa fazer um connection pool… vc so precisa usar um! O louds ja ate deu a dica do DBCP, mas existem diversas outras implementacoes disponiveis, e vai do seu ambiente escolher a melhor/mais facil de usar.