gpt4 book ai didi

java - 如何在多个持久化上下文中以事务方式持久化对象?

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:04 24 4
gpt4 key购买 nike

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

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

com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException: Illegal attempt to enlist multiple 1PC XAResources

我很确定我无法按照我尝试的方式做到这一点,但我不知道应该使用什么策略。不同的ejbs中有不同的persistenceContext?我在这里很迷失,欢迎任何想法。提前致谢!

最佳答案

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

关于java - 如何在多个持久化上下文中以事务方式持久化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17410701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com