1

我正在使用 2 个不同的数据库(DB2 和 SQLSERVER)。我的persistence.xml 中定义了两个持久性单元。我有一个无状态的 ejb,我在其中注入了两个持久性上下文。

我有一个方法需要从数据库 A 读取某些记录,在那里写入一些数据,如果一切正常,向数据库 B 写入一些内容。我遇到了这个异常:

com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException:非法尝试登记多个 1PC XAResources

我很确定我不能按照我想要的方式做,但我不知道我应该使用什么策略。不同ejb中的不同persistenceContext?我在这里很迷茫,欢迎任何想法。提前致谢!

4

1 回答 1

1

您需要像 Atomikos 这样的事务管理器来管理 2 个不同数据库源之间的事务。这篇文章向您展示了如何使用 JPA、Hibernate 和 Spring 对其进行配置,但我相信您可以将其适应您的环境。

于 2013-07-01T19:58:47.060 回答