【问题标题】:spring transactions strategy for component integration组件集成的spring事务策略
【发布时间】: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


【解决方案1】:

我会添加一些中介组件,以便 A 和 B 之间的所有交互都通过一个服务(统一的 TX 管理策略)。 顺便说一句:您可以将 JmsTransactionManager 用于 A。有关 Spring TX 管理的更多信息here

【讨论】:

    最近更新 更多