同一实例上多个模式的非XA事务

时间:2015-12-01 13:58:18

标签: oracle hibernate weblogic

目前我正在使用Weblogic和Oracle。

我有一个Oracle DB实例和两个遗留模式,因此我使用了两个数据源。

为了保持事务性,我使用XA但不时会抛出HeuristicExceptions,导致数据级别出现一些不一致

现在因为它是同一个实例,不可能以某种方式不使用XA并定义一个可以访问这两个模式的数据源?

通过这种方式,我将不再使用XA并避免数据不一致。

由于

2 个答案:

答案 0 :(得分:2)

不要使用dblink。这太过分了。而且这可能与XA无关。最佳解决方案是使用来自单个数据源的两个模式中的表。按模式名称在查询中添加前缀表,或者在指向其他模式中的表的一个模式中创建同义词。

这只是数据库权限的问题。无需处理XA或dblinks。 一个db用户需要授权来操作两个模式中的表。

PS:您可以在指向同一数据库的连接上使用分布式事务。如果你坚持的话。但在你的情况下,没有必要这样做。

答案 1 :(得分:1)

您可以连接一个架构并为另一个架构创建DBLink以访问第二个架构。我认为该交易将适用于两种模式。

http://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts004.htm