【发布时间】:2025-12-11 10:55:02
【问题描述】:
我们有一个典型的情况。
两个java服务组件正在并行开发中。
假设 A 和 B。A 是 JMS 应用程序,它从队列中提取消息并执行一些业务规则处理。 A 使用 B 进行数据库持久性。 B 执行所有数据库操作。
所以,这意味着 B 的方法总是从 A 调用。 A 使用WebsphereUowTransactionManager(JtaTransactionManager 的服务器特定子类)开发,而 B 使用 JpaTransactionManager。 A 使用程序化事务模型(是的,我们需要它),而 B 使用声明性模型(@Transaction 注释)。两者都是使用单独的 bean 配置开发的。
现在,在集成中,我们面临着交易异常。我认为这是由于 A 和 B 的事务模型不匹配造成的。理论上,B 将使用 A 的程序化事务上下文。这使得 B 的声明性模型变得多余。
那么,问题是什么是整合 A 和 B 的正确组合交易策略?
我的理解 - A 使用程序化交易,所以 B 也必须使用程序化模型。
【问题讨论】:
-
这两个事务管理器之间没有适配器吗?
-
什么样的适配器?你能解释一下吗?
标签: spring transactions