高可用性集群中的 XA

X/Open 分布式事务处理 (DTP) 模型允许高可用性集群中的可更新辅助服务器在分布式事务中充当资源管理器。

任何 XA 全局事务中的参与者有三种:

在高可用性集群中,会话可以从集群中的任何服务器创建事务分支或附加到事务分支。例如,可从 server_2 附加已从 server_1 分离的事务分支。应用程序可在不跟踪启动事务的服务器的情况下,使用连接管理器连接到集群。事务管理器也可以使用连接管理器连接到集群,以完成 XA 事务,方法是对松散和紧密耦合的事务均执行落实、回滚或忽视(请参阅松耦合与紧耦合方式)。

所有从辅助服务器启动的全局事务分支都将使用现有代理接口重定向到主服务器。 主服务器启动和维护所有事务分支,并执行与分支关联的所有请求工作。

在可更新辅助服务器上启动了 XA 事务时,主服务器上也将启动相应的 XA 事务。主服务器上的 XA 事务执行 XA 事务的整个生命周期(启动、结束、准备以及落实或回滚)。 辅助服务器上的 XA 事务用于支持未重定向到主服务器的查询。发出对 xa_end() 函数的调用时,系统将释放 XA 事务,并将用户会话从 XA 事务分离。所有 XA 事务请求和 XA 事务内发出的所有写操作都将重定向到主服务器。

以下功能特定于GBase 8s XA 实施:
在辅助服务器上运行的 XA 事务有以下限制:
重要: 如果要将 .NET Framework 用于 Microsoft™ Transaction Server 以管理高可用性集群中的 XA 事务,那么必须使用 TransactionScope 类而非 ServiceConfig 类。TransactionScope 类可用于 .NET Framework 3.5。