Ola ,
Galera estou com um problema que provavelmente eh comum mas nao achei nada na net. Eh
o seguinte :
Tenho uma estrutura de programacao onde tenho varios Beans e cada metodo desses beans
chamam uma procedure que devolve um resultado, ate ai normal e comum. O problema eh
que para chamar essas procedures eu uso o comando Connection.prepareCall(<Chamada da
Package>), depois dou um execute e logo apos o close. Ai vem o problema
Ao executar o prepareCall o JDBC cria um cursor aberto no oracle e ao dar o execute
ele cria um segundo e quando chamo o Close o JDBC somente fecha o segundo, o primeiro
fica aberto e so fecha quando o objeto Connection e destruido. Eu ja fiz varios testes
com o oracle e outras linguagens (Delphi | PowerBuilder | Forms) e isso nao aconteceu,
portanto acho que eh um problema do JDBC se alguem tiver alguma ideia ou dica ... por
favor mander para mim.
Obrigado,
Ex.: de metodo
*********************************************************************************
ctmQuery e conConnectionDB sao privados do objeto
*********************************************************************************
public String getRoleName(String pstrLDAPName)throws OFSWebException {
String strCommand = null;
int intErrorCode = 0;
String strErrorDesc = null;
String strOrder = null;
String strRoleName = null;
try {
strCommand = "{call KOF_OF_RO.POF_OF_ROSelRoleName(?,?,?,?)}";
ctmQuery = conConnectionDB.prepareCall(strCommand);
// Registering input parameters
ctmQuery.setString(1,pstrLDAPName);
// Registering output parameters
ctmQuery.registerOutParameter(2,OracleTypes.NUMBER); // Oracle error code
ctmQuery.registerOutParameter(3,OracleTypes.VARCHAR); // Oracle error description
ctmQuery.registerOutParameter(4,OracleTypes.VARCHAR); // Role Name
// Execute stored procedure and get the resultset
ctmQuery.execute();
intErrorCode = ctmQuery.getInt(2);
strErrorDesc = ctmQuery.getString(3);
strRoleName = ctmQuery.getString(4);
ctmQuery.close();
if (intErrorCode != 0) {
throw new OFSWebException(intErrorCode,strErrorDesc);
}
}
catch (OFSWebException excOFS) {
throw new OFSWebException(excOFS.getErrorCode(), excOFS.getMessage());
}
catch (SQLException excSQL) {
StringWriter stwError = new StringWriter();
excSQL.printStackTrace( new PrintWriter(stwError));
throw new OFSWebException(intErrorCode, stwError.toString());
}
catch (Exception excOther) {
StringWriter stwError = new StringWriter();
excOther.printStackTrace( new PrintWriter(stwError));
throw new OFSWebException(iConstants.EXCEPTION_ERROR_CODE, stwError.toString());
}
return strRoleName;
}
*********************************************************************************
<><><><><><><><><><><><><><><><><><>
[]'s
Mike Moreira
CPA Sistemas de Informa��o
+55.11.4330-6066
[EMAIL PROTECTED]
<><><><><><><><><><><><><><><><><><>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------