Como usar e configurar o DBCP?

8 respostas
W

Pessoal, gostaria de usar um pool de conexões ao invés de final abrindo e fechando conexão toda hora, o que não é legal né. Baixei os commons do projeto jakarta: commons-dbcp, commons-collection, commons-pool e segui um how-to do próprio jakarta(http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html).
Utilizo banco de dados Oracle 9i e a versão do meu Tomcat é a 4.0.3. Quando executo a aplicação o DataSorce tem valor null, o que impede a execução correta da aplicação. Lá no how-to o código para o Oracle é esse aí

Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle"); Connection conn = ds.getConnection();
Alguém já usou e pode me dar umas dicas a respeito do DBCP? O Tomcat 4.0.3 tem suporte a esse tipo de tecnologia(pool de conexões)?
Se alguém puder ajudar, ficarei agradecido…Valeu

8 Respostas

dgouvea

Eu não conheço o DBCP, mas se vc quer um pool de conexões, talvez esse código te ajude:

import java.sql.*; 

public class Acesso { 

   private Connection con; 
   private Acesso instance; 

   private Acesso() {} 

   public static synchronized Acesso getInstance() { 
       if ( instance == null ) 
           intance = new Acesso(); 
       return instance; 
   } 

   public Connection getConnection() throws SQLException, ClassNotFoundException, Exception { 
       Class.forName( "org.gjt.mm.mysql.Driver" ); 
       Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/bd", "user", "password" );
       return con; 
   } 
}

para fazer uma chamada de outro método, utilize:

Acesso acesso = acesso.getInstance();
Connection con = acesso.getConnection();

Talvez isso resolva o seu problema com as conexões.
:slight_smile:

W

Ok, mas a idéia do pool de conexões não é fazer com que um “gerenciador” controle um certo número de conexões, 20, por exemplo, e quando eu precisar de uma eu a consigo direto no pool sem ter que pedir ao banco toda hora? Com esse código eu consigo isso? E pra mim fechar a conexão, no caso devolvê-la ao pool, como faço?

dgouvea

Foi mal cara, eu ehh que viajei, no exemplo que eu passei ele faz com que a classe so possa ser instanciada por ela mesmo, ele não resolve o problema do número de conexões.

Foi mal :oops:

W

Mas você tem um código que controla o número de conexões(pool) ou sabe onde encontrar um outro?

dgouvea

não sei te dizer onde pode encontrar.

L

wender, estou com o mesmo problema que vc… mandei mensagem para varios grupos de java e nada…

W

pois é…estou precisando muito disso

L

eu tb…

Da uma olhada nesse site ele tem um exemplo legal… só não consegui fazer funcionar… hhehehe

http://www.webdevelopersjournal.com/columns/connection_pool.html

Estou utilizando o SQL SERVER (MSSQL).

Se vc tiver sucesso me avise…

Criado 19 de novembro de 2003
Ultima resposta 19 de nov. de 2003
Respostas 8
Participantes 3