ejb3-在事务内使用 2-持久性单元
我在使用以下技术堆栈从同一事务中连接到 2 个持久性单元时遇到问题,
WLS 10.3.x、Eclipselink 2.1、Oracle 11g JDBC 驱动程序、Informix 10 JDBC 驱动程序
使用此 SO 的输入post 我使 Oracle 数据源 XA 兼容和 Informix ds“模拟两阶段提交”,一切开始工作。但是,现在我遇到了一个奇怪的问题。
我使用独立的 java 客户端来调用 ejb 3 SLSB,而 ejb 3 SLSB 又调用 JPA 实体。我面临的问题是它第一次工作,第二次它不抛出任何异常,但不更新任一数据库中的数据,第三次它抛出一个异常,指出“事务已提交”,就好像应用程序一样服务器 JTA 事务管理器保留原始事务上下文。请注意,这 3 个调用是独立且连续的,其中每次调用都随着客户端退出客户端进程而完成。该问题非常一致,并且每次重新启动应用程序服务器时都会以完全相同的顺序发生。
感谢任何意见!
I am having problems connecting to 2 persistence units from within the same transaction using following tech stack,
WLS 10.3.x, Eclipselink 2.1, Oracle 11g JDBC driver, Informix 10 JDBC driver
Using inputs from this SO post I made the oracle datasource XA compliant and the Informix ds "Emulate 2-phase commit" and things started to work. However, now I am getting a strange problem.
I am using standalone java client to invoke my ejb 3 SLSB which in turn invokes the JPA entities. The problem I am facing is it works the first time, the second time it does not throw any exception but does not update the data in either databases and the 3rd time it throws an exception stating "Transaction has already been committed" as if the application server JTA transaction manager is holding on to the original transaction context. Please note these 3 invocations are separate and sequential wherein every invocations completes with the client exiting the client process. The problem is very consistent and happens in the exact same sequence every time I restart the app server.
Appreciate any input!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)