【发布时间】:2013-12-12 10:18:46
【问题描述】:
在我们的新项目中,我们希望实现涉及 jpa (mysql) 和消息总线 (rabbitmq) 的事务
我们开始使用 mysql 和 rabbitmq(通过 spring amqp 模块)使用 spring 数据构建我们的基础设施。由于 rabbitMq 不是 XA-transactional,我们将 neo4j chainedTransactionManager 配置为我们的主要 transactionManager。该管理器将 jpa txManager 和 rabbitTransactionManager 作为参数。
现在,我确实能够使用 @Transacitonal 注释服务并在其中使用 jpa 和 rabbit。如果我在服务中抛出异常,则实际上不会发生任何操作。
这是我的问题:
- 这个配置真的给了我一个原子事务吗?
- 我听说链式 tx 管理器没有使用 2 阶段提交,而是使用“尽力而为”,这种尽力而为是否不太可靠?如果有怎么办?
【问题讨论】:
标签: spring transactions rabbitmq xa