Devolver Connection para o Pool?

5 respostas
W

Como faço para devolver um Connection para um pool de conexões?
Defino os atributos do BasicDataSource:

private DataSource setupDataSource() {

BasicDataSource ds = new BasicDataSource();

ds.setDriverClassName(driver);

ds.setUsername(login);

ds.setPassword(password);

ds.setUrl(url);

ds.setMaxActive(maxConnections);

return ds;

}

que me retorna um DataSource o qual me possibilita pegar uma conexao com o banco:

public Connection getConn() throws SQLException {

return ds.getConnection();

}

Depois q eu uso a conexao estou setando ela como null. Isso eh correto?

5 Respostas

mcampelo

Não há um método closeConnection()?

W

Estou usando o DBCP do jakarta. Encotrei somente metodos para eu setar o numero maximo de conexoes, etc, mas nao um onde um possa dizer que o Connection estah liberado. Depois que eu uso o Connection seto ele como null, mas eu nao sei se o gerenciador do pool passa somente uma copia dos Connection disponiveis ou se ele cria outro depois q eu seto uma das conexoes como null.
Entao, qual o procedimento correto para eu liber uma conexao que nao estah mais sendo usada, ou seja dizer para o gerenciador que ela pode ser solicitada novamente?

mcampelo

Já deu uma olhada nos exemplos?

http://cvs.apache.org/viewcvs.cgi/jakarta-commons/dbcp/doc/

Acho que basta chamar connection.close();

W

“mcampelo”:
Já deu uma olhada nos exemplos?

http://cvs.apache.org/viewcvs.cgi/jakarta-commons/dbcp/doc/

Acho que basta chamar connection.close();


Realmente nos exemplos eles simplesmente fecham a conexao com o close. Eu não tinha prestado atenção nesse detalhe. Realmente deve ser somente isso. So não entendo como o gerenciador não perde os recurso alocados para aquela conexão, jah que o ojetivo e não ficar criando conexões sempre.

Valeu pela ajuda.

mcampelo

Nesse caso sugiro que você coloque sua dúvida na lista de discussões do projeto.

Geralmente eu faço isso e consigo obter as respostas que preciso!

Boa sorte!

Criado 9 de março de 2004
Ultima resposta 9 de mar. de 2004
Respostas 5
Participantes 2