Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在多个持久化上下文中以事务方式持久化对象?_Java_Jpa_Jta - Fatal编程技术网

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

Java 如何在多个持久化上下文中以事务方式持久化对象?,java,jpa,jta,Java,Jpa,Jta,我正在使用两个不同的数据库(DB2和SQLSERVER)。我在persistence.xml中定义了两个持久性单元。我有一个无状态ejb,我在其中注入了两个持久性上下文 我有一个方法,需要从数据库a读取某些记录,在那里写入一些数据,如果一切正常,则向数据库B写入一些数据。我遇到了以下异常: com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException:非法尝试登记多个1PC XAResources 我很确定我不能用我正在尝试的方式

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

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

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


我很确定我不能用我正在尝试的方式去做,但是我不知道我应该用什么策略来代替。不同EJB中的不同persistenceContext?我在这里迷路了,欢迎有任何想法。提前谢谢

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

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