A potential connection leak detected for connection pool

1 resposta
Roger75

Quando dá esse erro (na verdade um warning, no log do Glassfish 2) quer dizer que alguma parte do código abriu uma conexão ao banco e não fechou? Como detectar onde está ocorrendo?
Pelo código, parece estar fechando a conexão:

public Requisitante obterRequisitante(Long codigo){ Requisitante req = null; String consulta = "SELECT * FROM Requisitante WHERE codigoRequisitanteSD = '"+ codigo +"' "; try { banco = BD.getInstancia(); banco.conectarMysql(); rs = banco.executaConsulta(consulta); while (rs.next()) { req = new Requisitante(codigo, rs.getString("nome"), rs.getString("categoria"), null, rs.getString("email"), null, null, rs.getString("telefone"), rs.getString("cargo"), null); } } catch (Exception e) { new log(": Erro obtendo requisitante" + e.getMessage()); } finally { banco.fechar(); } return req; }

1 Resposta

Roger75

Fiz algumas alterações nos DAOs, mas o Glassfish dá alguns warnings de "connection leak", bem na hora do getConnection da classe BD...

public Connection conectarMysql() {	
			try {
				InitialContext ic = new InitialContext();
				DataSource ds = (DataSource) ic.lookup(strCon);
				conexao = ds.getConnection();  //  <====  Linha que o warning do Glassfish aponta como possível "leak" de conexão
				
			} catch (Exception ex) {
				conexao = null;
				new log(": Exceção JNDI" + ex.getMessage());
			}
			return conexao;
		}
O que pode ser?
Criado 8 de fevereiro de 2012
Ultima resposta 13 de fev. de 2012
Respostas 1
Participantes 1