Hi all,
We have written a small test app that utilizes the tracking event processor. However, we have run into an issue while attempting to persist the tracking token to the Token entry store. Below, is the stack trace from the failed persist. We seem to be missing a step in configuring a transaction manager for the tracking event processor.
org.axonframework.eventhandling.EventProcessingException: An exception occurred while processing events in EventProcessor [axon3spike]. Unit of Work has been rolled back.
at org.axonframework.eventhandling.AbstractEventProcessor.process(AbstractEventProcessor.java:128)
at org.axonframework.eventhandling.TrackingEventProcessor.doProcess(TrackingEventProcessor.java:196)
at org.axonframework.eventhandling.TrackingEventProcessor.lambda$start$2(TrackingEventProcessor.java:150)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process ‘merge’ call
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:278)
at com.sun.proxy.$Proxy88.merge(Unknown Source)
at org.axonframework.eventhandling.tokenstore.jpa.JpaTokenStore.storeToken(JpaTokenStore.java:51)
at org.axonframework.eventhandling.TrackingEventProcessor.lambda$null$0(TrackingEventProcessor.java:143)
at org.axonframework.messaging.unitofwork.MessageProcessingContext.notifyHandlers(MessageProcessingContext.java:68)
at org.axonframework.messaging.unitofwork.BatchingUnitOfWork.lambda$notifyHandlers$0(BatchingUnitOfWork.java:119)
at java.util.ArrayList$Itr.forEachRemaining(ArrayList.java:891)
at org.axonframework.messaging.unitofwork.BatchingUnitOfWork.notifyHandlers(BatchingUnitOfWork.java:119)
at org.axonframework.messaging.unitofwork.AbstractUnitOfWork.changePhase(AbstractUnitOfWork.java:214)
at org.axonframework.messaging.unitofwork.AbstractUnitOfWork.commitAsRoot(AbstractUnitOfWork.java:83)
at org.axonframework.messaging.unitofwork.AbstractUnitOfWork.commit(AbstractUnitOfWork.java:71)
at org.axonframework.messaging.unitofwork.BatchingUnitOfWork.executeWithResult(BatchingUnitOfWork.java:81)
at org.axonframework.eventhandling.AbstractEventProcessor.process(AbstractEventProcessor.java:112)