Pool de Conexões sem ser o Commons DBCP

8 respostas
saoj

Estava pensando em colocar um pool de conexões no Mentawai e fazer um filtro para prover uma Connection para uma ação de forma totalmente transparente.

Não queria usar o Commons DBCP, porque ele depende do commons-pool, que depende do commons-collections.

O Mentawai do jeito que está agora não depende de nada e é um mísero jar de 101k.

Alguém conhece uma implementação clean, pequena e eficiente?

8 Respostas

Luca

Olá

c3p0

[]s
luca

ricardolecheta

Luca:
Olá

c3p0

[]s
luca

show de bola esse, eu tinha uma aplicação que usava o pool do websphere… sempre dava problemas…

depois que coloquei o c3p0 os problemas terminaram :slight_smile:

saoj

To vendo que o DBCP já vem no Tomcat.

Acho que vou abstrair o pool de conexões do framework, ou seja, cada um usa o que quiser. Vou só criar uma interface ConnectionHandler para o cara implementar para prover conexões.

Já tenho:

JNDIConnectionHandler = pega do context jndi definido no XML

e

DataSourceConnectionHandler = usa um data source qualquer para prover as conexoes

Falta algo?

:roll: :roll:

Mauricio_Linhares

Ofereça um pool default, não se esqueça de:

O cara não quer “conversa”, ele quer a coisa feita. Você não precisa “empacotar” o pool dentro do Mentawai, mas dê uma implementação default da classe ConnectionHandler usando o DBCP, ou o C3p0 ou o Proxool, porque muita gente não tem acesso nem a um JNDI nem a um Datasource, principalmente quem trabalha com hospedagem terceirizada.

cv1

Erhm, alguem me explica pq um framework web tem que se preocupar com as conexoes no banco de dados?

Mauricio_Linhares

Acho que eu já perguntei isso: http://www.guj.com.br/posts/list/15/26049.java#141337 :mrgreen:

saoj

Não tem nava haver mesmo! O que eu gostaria de oferecer é um ConnectionFilter que vai oferecer uma Connection pra action de maneira totalmente transparente e vai garantir que aquela Connection será devolvida ao pool de qualquer maneira após a execução da action.

Mas quero deixar aberto para o cara utilizar o pool que ele quiser.

saoj

Maurício Linhares:
Ofereça um pool default, não se esqueça de:

O cara não quer “conversa”, ele quer a coisa feita. Você não precisa “empacotar” o pool dentro do Mentawai, mas dê uma implementação default da classe ConnectionHandler usando o DBCP, ou o C3p0 ou o Proxool, porque muita gente não tem acesso nem a um JNDI nem a um Datasource, principalmente quem trabalha com hospedagem terceirizada.

Fala Maurício!!! Concordo com vc! Minha dúvida é:

Não queria inxar o Mentawai com dependencias externas, mas nada me impede me compilar uma classe que use esses pools sem incluir os seus respectivos jars.

desvantagens:

  • O cara terá que ser esperto para pegar essas implementações e colocar no /web-inf/lib

  • No caso do Tomcat, não precisa fazer nada para o DBCP, que já vem dentro do Tomcat.

  • Quando algúem for fazer o build vai dar pau pois não vai encontrar esses jars.

soluções:

  • eu deixar de bobeira e incluir esses jars na distribuição do mentawai, mas não no mentawai.jar, o que não faz sentido mesmo.

  • não incluir mas checar no runtime se elas existem e se o cara tentar usá-las sem o Jar jogar uma exceção bem clara do tipo: "Vc precisa pegar o pool tal aqui e colocar os jars no /web-inf/lib da sua aplicação.

O que vc acha de tudo isso Maurício?

Criado 28 de junho de 2005
Ultima resposta 29 de jun. de 2005
Respostas 8
Participantes 5