我在使用以下技术堆栈
从同一事务中连接到2个持久性单元时遇到问题 WLS 10.3.x, Eclipselink 2.1, Oracle 11g JDBC driver, Informix 10 JDBC driver
使用来自此SO post的输入我使oracle数据源XA兼容并且Informix ds“模拟两阶段提交”并且事情开始起作用。但是,现在我遇到了一个奇怪的问题。
我使用独立的Java客户端来调用我的ejb 3 SLSB,后者又调用JPA实体。我面临的问题是它第一次工作,第二次它没有抛出任何异常,但没有更新任一数据库中的数据,第三次抛出异常,说明“事务已经提交”,就好像应用程序一样服务器JTA事务管理器正在保持原始事务上下文。请注意,这3个调用是分开的和顺序的,其中每个调用都在客户端进程退出客户端进程时完成。问题非常一致,每次重新启动应用服务器时都会以完全相同的顺序发生。
感谢任何输入!
答案 0 :(得分:0)
<persistence-unit name="TopLinkDB" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/oracleDS</jta-data-source>
<class>com.home.domain.Property</class>
<properties>
<property name="eclipselink.target-server" value="WebLogic_10" />
</properties>
</persistence-unit>
<persistence-unit name="TopLinkINFO" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/infoDS</jta-data-source>
<class>com.home.domain.GlobalNumber</class>
<properties>
<property name="eclipselink.target-server" value="WebLogic_10" />
</properties>
</persistence-unit>