Hi before the transaction starts set the transaction timeout on the transaction manager or if you want it to be global define the transaction manager in tomee.xml:
<TransactionManager id="Default Transaction Manager" type="TransactionManager" > defaultTransactionTimeout = 1 hour 30 minutes </TransactionManager> Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> 2015-08-04 19:23 GMT+02:00 Leonardo K. Shikida <[email protected]>: > Hi > > I have a very very very long job (> 1 h) to be run in my MDB and since it > happens inside an activeMQ transaction, i'm getting a timeout like this > > org.apache.openejb.core.transaction.TransactionRolledbackException: > Transaction was rolled back, presumably because setRollbackOnly was called > during a synchronization: Transaction was rolled back, presumably because > setRollbackOnly was called during a synchronization > at > > org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:336) > at > org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:75) > at > > org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:76) > at > > org.apache.openejb.core.mdb.MdbContainer.afterDelivery(MdbContainer.java:436) > at > > org.apache.openejb.core.mdb.EndpointHandler.afterDelivery(EndpointHandler.java:272) > at > > org.apache.openejb.core.mdb.EndpointHandler.invoke(EndpointHandler.java:162) > at... > > org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.afterDelivery(MessageEndpointProxy.java:128) > at > > org.apache.activemq.ra.MessageEndpointProxy.afterDelivery(MessageEndpointProxy.java:69) > at > > org.apache.activemq.ra.ServerSessionImpl.afterDelivery(ServerSessionImpl.java:224) > at > org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:938) > at > org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169) > at > > org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:366) > at > > org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:32) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:724) > Caused by: > org.apache.openejb.core.transaction.TransactionRolledbackException: > Transaction was rolled back, presumably because setRollbackOnly was called > during a synchronization > at > > org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:335) > ... 16 more > Caused by: javax.transaction.RollbackException: Unable to commit: > transaction marked for rollback > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:272) > at > > org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) > at > > org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:328) > ... 16 more > Caused by: java.lang.Exception: Transaction has timed out > at > > org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:266) > ... 18 more > Aug 04, 2015 4:12:53 PM org.apache.activemq.ra.ServerSessionImpl run > > ActiveMQ is an external one (not the one embedded in tomee) > > What configuration should I change in this case? > > TIA > > Leo >
