我对Spring事务管理中的提交顺序有疑问。我目前的申请要求我在哪里使用
我的事务触发器从MQ接收......
以下是行动的顺序:
我测试了所有回滚案例。一个 当第6步失败时,它会回滚所有数据库事务,包括第5步MQ回滚。
我的问题是,一旦我们发布消息我想了解提交顺序..它会在MQ提交到下游队列之前提交所有3 DB事务吗?
因为我想限制事务提交的顺序。 它必须按顺序1,2,3,4,5然后6
一旦我们发布消息,下游应用程序将访问我们在上面解释的此事务中插入的相同表。
任何人都可以指导我吗?如何提交交易?
答案 0 :(得分:0)
提交顺序正如您所期望的那样,但请记住以下几点:
据我了解,你只有一次交易。此事务将从消息接收开始,其他操作将添加到此单个transaccion(这是许多事务API中的默认行为)。
这意味着您只有 ONLY 一个事务,因此只有一个全局提交(它实际上是2次提交,一次是数据库系统,一次是队列系统)。
这也意味着导致回滚的任何失败将影响数据库和队列系统(如果已配置,消息将返回队列或重试队列)。
为了给你一个正确的答案,我需要知道你希望它如何运作。