1

我有两个 spring 应用程序 A 和 B,每个都在一个单独的 EAR 文件中。现在我想从 A 打电话给 B,反之亦然,甚至可能是 A -> B -> A 或更多。

调用必须是事务安全的。

推荐的方法是什么?

4

2 回答 2

0

从一个 EAR 到另一个 EAR 进行同步事务的唯一方法——通过两次面提交——调用是使用远程 EJB :(

如果在您的情况下可能,我宁愿使用 JMS 进行异步调用,消息的发送将与您的事务耦合,但接收方将无法回滚您的事务,因为它可以使用远程 EJB称呼。

于 2010-12-15T13:45:37.743 回答
0

保持这种安全的唯一方法是使用由容器管理的 JTA 事务。Spring 通过它的 支持这些JtaTransactionManager,因此您可以编写与 Spring 中的任何其他事务相同的事务逻辑。所有数据源都必须由容器管理,而不是由应用程序管理。

于 2010-12-15T08:40:56.000 回答