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] -------------------------------------------------------------------------