【问题标题】:is a a dblink allowed in a J2EE distributed transaction?J2EE 分布式事务中是否允许使用 dblink?
【发布时间】:2014-06-18 09:37:33
【问题描述】:

我正在编写一个将由 J2EE 程序调用的 PL/SQL 过程 (Oracle)。这个 J2EE 程序已经启动了一个分布式事务,我的 PL/SQL 过程将成为这个事务的一部分。 我想知道是否允许在我的程序中使用 dblink。我猜这可能会导致一些问题,因为使用 dblink 意味着由 Oracle 管理的分布式事务,但已经有由 J2EE 容器管理的分布式事务。 是禁止的吗?还是允许有一些限制?

感谢您的回答。

【问题讨论】:

  • 你试过看看会发生什么吗?
  • 几年前,我在使用 weblogic 8.1,当我用 java 中的 dblink 重写一些 PL/SQL 代码时,我遇到了一些奇怪的错误,这些错误消失了。我以为它是被禁止的,但也许有一些限制是允许的。今天,我使用不属于我自己的 Tomee 和 PL/SQL 包。我没有收到任何错误,但程序无法正常工作。我还不知道这是因为程序错误、tomee 错误还是因为这个 dblink。
  • 如果数据库链接实际上可能在 JDBC 语句中,我可能会相信一个错误。但是,如果它仅在您正在调用的过程中,我看不出当通过 JDBC 调用与从 SQL*Plus 或其他客户端调用时,它的行为会有什么不同。不过,分布式事务可能会使这复杂化。您是通过 DB 链接执行 DML,还是只是查询?你查询的是分布式事务另一部分修改的数据吗?

标签: oracle jakarta-ee plsql dblink xa


【解决方案1】:

如果您谈论的是 XA 分布式事务,则支持此类配置,但有一些限制(这取决于您的 Oracle DB 版本)。更多详情可以查看this document关注“XA和数据库链接”部分

【讨论】:

  • 感谢您的回答。这篇论文正是我要找的。我现在才开始读书。
猜你喜欢
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 2012-01-09
相关资源
最近更新 更多