WebLogic - Cannot commit when using distributed transactions

Olá pessoal,

tenho uma aplicação que utiliza as transações do Hibernate para acesso ao banco. Da seguinte forma:

net.sf.hibernate.Session session = ....;

net.sf.hibernate.Transaction transaction transaction = session.beginTransaction();

// faz manipulação no banco de dados

transaction.commit();

Esse código funciona bem na minha aplicação local. No entanto, agora tivemos que rodar esse código dentro de uma transação distribuída no WebLogic (javax.transaction.UserTransaction).

Ao rodar a aplicação distribuída no WebLogic, quando chega na linha transaction.commit() ele lança uma exceção;
java.sql.SQLException: “cannot commit when using distributed transactions”

Alguém sabe o que posso fazer para contornar esse problema?

obrigado,

abraço

Alexandre,

Eu estou chutando que o problema é que alguém aí não suporta transações distribuídas. Você poderia postar o stacktrace da exceção? Todos os recursos envolvidos na transação suportam algo do tipo XA?

Abraços,

Olá, sim. Todos estão usando XA.

O stacktrace é o seguinte:

2007-03-13 11:06:16,741 ERROR net.sf.hibernate.transaction.JDBCTransaction Commit failed
java.sql.SQLException: Cannot call commit when using distributed transactions
at weblogic.jdbc.wrapper.JTAConnection.commit(JTAConnection.java:321)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:63)
at infopae.persistencia.api.Transaction.commit(Transaction.java:35)
at infopae.dadosgraficos.util.bd.BdAcesso.commit(BdAcesso.java:64)
at infopae.dadosgraficos.operacoes.tarefas.TarefaCriarMetadados.executarTarefa(TarefaCriarMetadados.java:90)
at infopae.dadosgraficos.operacoes.tarefas.AbstractTarefa.executar(AbstractTarefa.java:26)
at infopae.dadosgraficos.operacoes.OpImportarShape.criarClasse(OpImportarShape.java:257)
at infopae.dadosgraficos.operacoes.OpImportarShape.importarShapeParaModeloInfoPAE(OpImportarShape.java:202)
at infopae.dadosgraficos.operacoes.OpImportarShape.executarOperacao(OpImportarShape.java:110)
at infopae.dadosgraficos.operacoes.AbstractOperacao.executar(AbstractOperacao.java:65)
at infopae.replica.update.tdk.EventoShapeImportado.executar(EventoShapeImportado.java:65)
at infopae.replica.update.TdkUpdate.executeTdkUpdate(TdkUpdate.java:64)
at infopae.replica.update.TdkUpdate.executeTdkUpdate(TdkUpdate.java:41)
at infopae.replica.update.TdkUpdate.execute(TdkUpdate.java:90)
at infopae.replica.replicador.Importador.executeUpdate(Importador.java:91)
at infopae.replica.replicador.Importador.processMessage(Importador.java:66)
at infopae.replica.replicador.Importador.onMessage(Importador.java:113)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4060)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:3953)
at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4467)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)