Using ejb3 timer-service backed by database in EAP 7 not working with kie-server application
Issue
When EAP 7 is configured with a database backing its ejb-timer service as per https://access.redhat.com/solutions/2253701, the kie-server application is unable to run processes that require timers as the result of transaction related error:
14:01:59,085 ERROR [org.jboss.as.ejb3] (default task-2) WFLYEJB0018: Ignoring exception during setRollbackOnly: com.arjuna.ats.jta.exceptions.InactiveTransactionException: ARJUNA016102: The transaction is not active! Uid is 0:ffffc0a80014:-55f0420e:59773315:b6
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.setRollbackOnly(TransactionImple.java:331)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.setRollbackOnly(TimerServiceImpl.java:1045)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.persistTimer(TimerServiceImpl.java:613)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.createTimer(TimerServiceImpl.java:481)
at org.jboss.as.ejb3.timerservice.TimerServiceImpl.createSingleActionTimer(TimerServiceImpl.java:307)
at org.jbpm.services.ejb.timer.EJBTimerScheduler.internalSchedule(EJBTimerScheduler.java:90)
...
at org.jbpm.services.ejb.timer.EJBTimerScheduler$$$view1.internalSchedule(Unknown Source)
at org.jbpm.services.ejb.timer.EjbSchedulerService.internalSchedule(EjbSchedulerService.java:83)
at org.jbpm.runtime.manager.impl.tx.TransactionAwareSchedulerServiceInterceptor$ScheduleTimerTransactionSynchronization.afterCompletion(TransactionAwareSchedulerServiceInterceptor.java:96)
at org.drools.persistence.TransactionSynchronizationContainer.afterCompletion(TransactionSynchronizationContainer.java:48)
at org.drools.persistence.jta.JtaTransactionSynchronizationAdapter.afterCompletion(JtaTransactionSynchronizationAdapter.java:37)
at org.jboss.as.txn.service.internal.tsr.JCAOrderedLastSynchronizationList.afterCompletion(JCAOrderedLastSynchronizationList.java:147)
at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:96)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:545)
at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:101)
at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:162)
at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1200)
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:126)
at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:89)
at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:178)
at org.drools.persistence.jta.JtaTransactionManager.commit(JtaTransactionManager.java:245)
at org.drools.persistence.SingleSessionCommandService$TransactionInterceptor.execute(SingleSessionCommandService.java:607)
at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:82)
at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:397)
at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession.startProcess(CommandBasedStatefulKnowledgeSession.java:256)
at org.jbpm.kie.services.impl.ProcessServiceImpl.startProcess(ProcessServiceImpl.java:100)
at org.kie.server.services.jbpm.ProcessServiceBase.startProcess(ProcessServiceBase.java:86)
at org.kie.server.remote.rest.jbpm.ProcessResource.startProcess(ProcessResource.java:93)
Environment
- JBoss BPM Suite
- 6.4
- JBoss Enterprise Application Platform (EAP)
- 7.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.