【发布时间】:2023-01-12 05:28:55
【问题描述】:
有没有办法在 quarkus 的事务中操纵执行已注册 XAResources 的顺序? 在我的场景中,我在配置的 XA 事务中有一个数据库数据源和一个 ActiveMQ 资源。对我来说,似乎没有明确的顺序,在两阶段提交期间首先处理哪个资源,最后处理哪个资源。
我的问题是,有时最终提交首先对消息传递系统完成,因此服务 A 的事件在数据库完成最终提交之前发布 - 该事件由另一个试图从服务 A 获取数据的服务 B 处理 -在极少数情况下,服务 B 从服务 A 接收数据,该数据处于事件发布之前的状态,因为数据库上的两阶段提交的最终提交仍在进行中。
IMO 最好的解决方案是始终将 ActiveMQ 资源作为两阶段提交中的第二个(或最后一个)资源来处理。
【问题讨论】:
标签: activemq quarkus xa two-phase-commit narayana