Connection Pool

Desculpe a ignorancia, mas alguem poderia me explicar a vantagem de utilizar um connection pool, ao invés de conectar diretamente ao banco.

em um sistema web com aproximadamente 100 a 200 usuário simultaneos é a melhor solução ou alguem tem alguma outra sugestao?

obrigado

nao eh a melhor solucaol, eh a unica :slight_smile:
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.

Atente-se a isso. :wink:

ate mais…

[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. :wink:

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. :wink:

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. :wink:

[]s, Welington B. Souza

valeu galera

Aproveitando a oportunidade, um sistema que tenha em torno de 100 a 200 usuários on-line simultaneos, pode ser rodado no Tomcat sem problemas?

Vi em algum local que teria uma melhor utilizacao se integrasse com um outro web server, alguem sabe me explicar o por que?

No meu caso nao sera possivel integrar com outro web server ja que as paginas sao todas dinamicas em jsp

[quote=“vaznet”]Vi em algum local que teria uma melhor utilizacao se integrasse com um outro web server, alguem sabe me explicar o por que?
[/quote]

O web server é mais rapido para manipular páginas estáticas (htmls que não modificam).

[]s, Welington B. Souza

Galera …

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 ???

Obrigado :smiley:

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. :wink:

Implementei o meu Connection Pool:

http://pedroabs.wordpress.com/2011/09/27/connection-pool-em-java-pool-de-conexoes/