Problemas com transação no Hibernate

3 respostas
danieldestro

Temos um projeto implantado e estranhamente ocorre este erro:

org.hibernate.TransactionException: could not register synchronization with JTA TransactionManager at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:172) at org.hibernate.transaction.JTATransaction.begin(JTATransaction.java:102) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1262) at br.com.abril.ppo.integration.dao.hibernate.HibernateUtility.beginTransaction(HibernateUtility.java:50) at br.com.abril.ppo.integration.dao.transaction.PPOTransaction.begin(PPOTransaction.java:23) at br.com.abril.ppo.integration.dao.transaction.TransactionManager.newTransaction(TransactionManager.java:13) at br.com.abril.ppo.integration.interceptor.ConnectionManagerFilter.doFilter(ConnectionManagerFilter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) ... Caused by: javax.transaction.RollbackException: Already marked for rollback at org.jboss.tm.TransactionImpl.registerSynchronization(TransactionImpl.java:689) at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:161) ... 48 more

Ainda não identificamos o momento em que ocorre nem o porquê. Tudo muito estranho e o cliente está P da vida e quer que tiremos o Hibernate do sistema dele.

Se alguem tiver uma pista para meu ajudar, agradeço!

3 Respostas

louds

Você tentou fazer o hibernate entrar na transação depois que ela já tinha sido marcada como rollback only.

danieldestro

Pois é, mas isso tudo é muito estranho. Não estamos conseguindo detectar a origem do problema e o código parace tudo muito certo.

danieldestro

Parece que descobrimos…
Pelo que vimos, isto tudo tem a ver com o fato do Struts fazer pooling das Action e usar a mesma intância em threads diferentes.
Acontecia também um problema de Lay Initialization.
Fizemos a sincronizacao de uns metodos e funcionou.
Mas vamos procurar uma solucao mais adequada ainda.

Criado 13 de abril de 2006
Ultima resposta 15 de abr. de 2006
Respostas 3
Participantes 2