AsynchronousCommandBus transactionManager

302 views
Skip to first unread message

Lukáš Vasek

unread,
Dec 19, 2016, 4:07:21 AM12/19/16
to Axon Framework Users
Hello,
 is it possible to register transactionManager in AsynchronousCommandBus  in axon 3.x?
Each time I use asyncCb I'm getting this exception:


org.axonframework.eventsourcing.eventstore.EventStoreException: An event for aggregate [00000000-0000-0000-0000-000000000001] at sequence [0] could not be persisted

at org.axonframework.eventsourcing.eventstore.AbstractEventStorageEngine.handlePersistenceException(AbstractEventStorageEngine.java:112)

at org.axonframework.eventsourcing.eventstore.jpa.JpaEventStorageEngine.appendEvents(JpaEventStorageEngine.java:189)

at org.axonframework.eventsourcing.eventstore.AbstractEventStorageEngine.appendEvents(AbstractEventStorageEngine.java:85)

at org.axonframework.eventsourcing.eventstore.AbstractEventStore.prepareCommit(AbstractEventStore.java:63)

at org.axonframework.eventhandling.AbstractEventBus.doWithEvents(AbstractEventBus.java:181)

at org.axonframework.eventhandling.AbstractEventBus.lambda$null$5(AbstractEventBus.java:133)

at org.axonframework.messaging.unitofwork.MessageProcessingContext.notifyHandlers(MessageProcessingContext.java:68)

at org.axonframework.messaging.unitofwork.DefaultUnitOfWork.notifyHandlers(DefaultUnitOfWork.java:91)

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.DefaultUnitOfWork.executeWithResult(DefaultUnitOfWork.java:80)

at org.axonframework.commandhandling.SimpleCommandBus.doDispatch(SimpleCommandBus.java:145)

at org.axonframework.commandhandling.SimpleCommandBus.doDispatch(SimpleCommandBus.java:118)

at org.axonframework.commandhandling.AsynchronousCommandBus.access$001(AsynchronousCommandBus.java:40)

at org.axonframework.commandhandling.AsynchronousCommandBus$DispatchCommand.run(AsynchronousCommandBus.java:94)

at org.springframework.security.concurrent.DelegatingSecurityContextRunnable.run(DelegatingSecurityContextRunnable.java:83)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

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 'persist' call

at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:282)

at com.sun.proxy.$Proxy172.persist(Unknown Source)

at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)

at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)

at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)

at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)

at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)

at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)

at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)

at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)

at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)

at org.axonframework.eventsourcing.eventstore.jpa.JpaEventStorageEngine.appendEvents(JpaEventStorageEngine.java:186)

... 22 common frames omitted



thanks

Lukáš Vasek

unread,
Dec 21, 2016, 5:31:16 AM12/21/16
to Axon Framework Users
So I've modified the AxonBank project and modified it default profile to use asynchronous command bus with postgresql as database. Whenever I create the bank account I can see the same error. Am I missing some configuration?

Thanks

Lukáš Vasek

unread,
Dec 21, 2016, 5:36:14 AM12/21/16
to Axon Framework Users
Finally changed to h2 for easier testing/simulation (not everybody have postgresql)

Allard Buijze

unread,
Dec 21, 2016, 10:29:04 AM12/21/16
to Axon Framework Users
Hi Lukas,

for transaction support, register a TransactionManagingInterceptor with your Command Bus.

Cheers,

Allard

On Wed, Dec 21, 2016 at 11:36 AM Lukáš Vasek <bil...@gmail.com> wrote:
Finally changed to h2 for easier testing/simulation (not everybody have postgresql)

--
You received this message because you are subscribed to the Google Groups "Axon Framework Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to axonframewor...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Lukáš Vasek

unread,
Dec 21, 2016, 10:59:01 AM12/21/16
to Axon Framework Users
Thank you Allard!
Reply all
Reply to author
Forward
0 new messages