tenho a seguinte funçao para receber e executar um comando sql em um banco oracle…
mas estou tendo problemas, quando rodo o sistema em modo debug tudo ocorre normalmente, os dados sao inseridos na tabela corretamente.
mas quando coloco o sistema para rodar normalmente os dados nao sao inseridos de forma alguma no banco…
a variavel intExecutouSQL = HibernateUtil.openSession().createSQLQuery(strSQL).executeUpdate();
recebe 1… ou seja TRUE, dizendo que o dado foi inserido no banco mas na verdade nao foi
mas nao sei… isso pode ser algum problema com o oracle… commit ou algo assim
alguem ai ja passou pelo mesmo problema?
[code]private static void executaSQL(DadoAReplicar objDadoAReplicar, int intTempoEsperaEntreSQL, int intNumeroTentativas) throws HibernateUtilException, CarregarEsquemaException {
int intSessao = 0;
int intExecutouSQL;
int intTentativas = 0;
String strSQL;
try {
intSessao = HibernateUtil.newSession();
} catch (Exception ex) {
log.debug("Não foi possível criar uma sessão " + ex.getMessage());
}
try {
HibernateUtil.beginTransactionSession(intSessao);
/* Tenta executar o sql */
strSQL = objDadoAReplicar.getSql();
strSQL = formataSQL(strSQL);
while (true) {
try
{
System.out.println("SQL a executar " + strSQL);
intExecutouSQL = HibernateUtil.openSession().createSQLQuery(strSQL).executeUpdate();
System.out.println("Executei o hibernate Util " + intExecutouSQL);
if (intExecutouSQL == 1) {
HibernateUtil.commitSession(intSessao);
return;
}
}
catch(Exception ex)
{
HibernateUtil.rollbackSession(intSessao);
System.out.println("Erro ao executar sql no banco "+ex.getMessage());
}
++intTentativas;
if (intTentativas == intNumeroTentativas) {
if(alterarStatusEsquema(objDadoAReplicar.getEsquema()) == false)
{
log.debug("Não foi possivel alterar Status do esquema " + objDadoAReplicar.getEsquema());
throw new CarregarEsquemaException("Impossível atualizar o status do esquema " + objDadoAReplicar.getEsquema());
}
log.debug("Não foi possível executar SQL numero de tentativas excedido.");
return;
}
try {
Thread.sleep(intTempoEsperaEntreSQL);
} catch (Exception ex) {
log.error("Erro ao executar o SQL. Verifique ");
}
}
} finally {
HibernateUtil.endSession(intSessao);
}[/code]