【发布时间】:2015-12-01 13:58:18
【问题描述】:
目前我正在使用 Weblogic 和 Oracle。
我有一个 Oracle DB 实例和两个旧模式,因此我使用两个数据源。
为了保持事务性,我使用 XA,但有时会抛出 HeuristicExceptions,导致数据级别出现一些不一致
现在因为它是同一个实例,所以不可能不使用 XA 并定义一个可以访问两种模式的数据源?
这样我就不会再使用XA了,避免出现数据不一致的情况。
谢谢
【问题讨论】:
目前我正在使用 Weblogic 和 Oracle。
我有一个 Oracle DB 实例和两个旧模式,因此我使用两个数据源。
为了保持事务性,我使用 XA,但有时会抛出 HeuristicExceptions,导致数据级别出现一些不一致
现在因为它是同一个实例,所以不可能不使用 XA 并定义一个可以访问两种模式的数据源?
这样我就不会再使用XA了,避免出现数据不一致的情况。
谢谢
【问题讨论】:
不要使用 dblink。这是矫枉过正。而且这可能与 XA 无关。最佳解决方案是使用来自单个数据源的两种模式的表。在查询中按模式名称为表添加前缀,或者在一个模式中创建指向另一个模式中的表的同义词。
这只是数据库权限。无需处理 XA 或 dblinks。 一个 db 用户需要获得授权才能操作两种模式中的表。
PS:您可以在指向同一个数据库的连接上使用分布式事务。如果你坚持。但在你的情况下,没有必要这样做。
【讨论】:
您可以连接一个架构并为另一个架构创建 DBLink 以访问第二个架构。我认为该事务将通过这两种模式进行。
http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts004.htm
【讨论】: