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

Non XA transaction for multiple schema's on the same instance

目前我正在将 Weblogic 与 Oracle 结合使用。

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

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

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

这样我就不会再使用XA了,避免数据不一致

谢谢

您可以连接一个架构并为另一个架构创建 DBLink 以授予对第二个架构的访问权限。我认为交易将通过两种模式进行。

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

不要使用数据库链接。这是矫枉过正。而且这可能与 XA 无关。最佳解决方案是使用来自单个数据源的两个模式的表。通过模式名称为查询中的表添加前缀,或者在一个模式中创建指向另一个模式中的表的同义词。

只是数据库权限问题。无需处理 XA 或 dblinks。 一个数据库用户需要获得授权才能在两个模式中操作表。

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