Setting up XA transactions over multiple transactional resources
Using the recipes discussed previously in this chapter, it is possible to set up multiple transactions in one route with many
policy blocks each referring to a different transaction manager, each managing a different transactional resource. When an exchange's processing is completed, the various transaction managers are instructed to commit one-by-one. If one of them fails to commit, perhaps due to an inconveniently-timed outage, that failure may leave the other backends in an inconsistent state overall, with some already having been committed, and now unable to roll back.
To get around this, you can employ a single over-arching transaction manager to coordinate multiple ...