设置 CLUSTER_TXN_SCOPE 配置参数来配置高可用性集群,以便在客户端会话发出提交时,服务器在辅助服务器上或跨集群地阻塞会话直到事务在那个会话中应用。
设置 CLUSTER_TXN_SCOPE 配置参数来控制从高可用性集群返回事务提交到客户端应用程序。集群事务协调可延迟事务提交到客户端应用程序的返回,直到事务应用到辅助服务器或高可用性集群中的所有辅助服务器。 这个例程防止由于异步日志处理导致的操作失败,并确保多步骤处理中的那些步骤按串行顺序发生。
集群事务协调不应用到 RS 辅助服务器,该服务器有 DELAY_APPLY 或 STOP_APPLY 配置函数值而不是 0。在客户端应用程序可收到提交之前,事务不需要应用在 RS 辅助服务器上。
CLUSTER_TXN_SCOPE 影响只读辅助服务器和可更新辅助服务器上的会话。
在这个示例中,客户端应用程序启动一个两步骤进程。客户端应用程序在主数据库服务器上插入数据,然后在 HDR 辅助服务器上启动数据处理。
在来自主服务器的日志应用在 HDR 辅助服务器上之前,如果试图在 HDR 服务器上对插入的数据执行 SELECT,则操作失败。 为了防止此失败,设置主服务器的 CLUSTER_TXN_SCOPE 配置参数为 CLUSTER,以便客户端应用程序不收到提交,且不可启动数据处理,直到数据插入页应用在 HDR 辅助服务器上。
在此示例中,您让一个客户端应用程序分作几个处理步骤。每个处理步骤使用一个不同的 SQL 会话来连接到数据库服务器。应用程序更新数据,然后应用程序的另一部分在不同的 SQL 会话中处理被更新的数据。
如果 CLUSTER_TXN_SCOPE 设置为 SESSION,则处理被更新的数据的那部分应用程序觉察不到更新的结果,可发生失败。为了防止此失败,设置数据库服务器的 CLUSTER_TXN_SCOPE 配置参数为 SERVER,以便客户端应用程序不接收提交,且不启动数据处理,直到在数据库服务器上更新完成。