Senhores,
Estou com a seguinte dúvida, em minha aplicação tenho a seguinte chamada para uma Stored Procedure:
public ResultSet pesquisar_horarios_terapias() throws SQLException
{
this.dados = null;
ConectaBd cadastrando = new ConectaBd();
System.out.println(this.getTabela());
Connection agendaservsocial = cadastrando.conecta();
CallableStatement cs = (CallableStatement) agendaservsocial.prepareCall("{call procurar_horario_servico_social(?,?,?)}");
cs.setString(1,this.getTabela());
cs.setString(2,this.getDatainicial());
cs.setInt(3,this.getCodigo());
cs.execute();
this.dados = cs.getResultSet();
return this.dados;
}
O que ocorre é o seguinte, esta stored é chamada 50 vezes seguidas por vários usários, e quando isso acontece o meu banco de dados para de responder pois ele chega ao máximo de conexões que pode receber, se não me engano 300.
Tentei fazer o seguinte, após a linha:
Tentei colocar um :
Para fechar a conexao, no entanto, quando faço isso recebo o seguinte erro quando chamo a procedure:
[list]31/05/2010 14:00:39 inicial.Principal menuagendaaquatica2ActionPerformed
SEVERE: null
java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:768)
at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7008)
at Agenda.ServSocial.AgendaSocial.PreencherTabela(AgendaSocial.java:580)[/list]
Então gostaria de saber como fechar essa conexão assim que usar a procedure, para que ela não fique ocupando um slot no BD.
Grato
Tiago Dantas