XA transactions and message bus

Viewed 2305

In our new project we would like to achieve transactions that involve jpa (mysql) and a message bus (rabbitmq)

We started building our infrastructure with spring data using mysql and rabbitmq (via spring amqp module). Since rabbitMq is not XA-transactional we configured the neo4j chainedTransactionManager as our main transactionManager. This manager takes as argument the jpa txManager and the rabbitTransactionManager.

Now, I do get the ability to annotate a service with @Transacitonal and use both the jpa and rabbit inside it. If I throw an exception within the service then none of the actions actually occur.

Here are my questions:

  1. Is this configuration really gives me an atomic transaction?
  2. I've heard that the chained tx manager is not using a 2 phase commit but a "best effort", is this best effort less reliable? if so how?
1 Answers
Related