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
>

Reply via email to