Multiplex 写入程序节点上的 DML 读写事务不再受协调器与写入程序节点之间临时通信故障的影响,也不会受到因服务器故障、关闭或故障转移而导致的协调器临时故障的影响。
用户连接到写入程序节点并针对共享对象执行读写 DML 命令后,写入程序将在协调器上启动一个全局事务。该事务将在写入程序和协调器之间启动一个内部节点间通信 (INC) 连接。
例如,共享数据库对象上的 INSERT 或 LOAD 命令是全局事务。如果发生故障,则会挂起全局事务和相应的 INC 连接。
如果临时故障在用户定义的超时期间内得以解决,全局事务就会完好如初地继续进行。用户可以提交、回退或继续该事务。使用 MPX_LIVENESS_TIMEOUT 选项设定超时期间,缺省为 1 小时(即 3600)。
如果故障持续时间超出用户定义的超时期间,全局事务无法恢复,用户必须回退整个事务。
如果正在主动执行 DML 命令时发生故障,命令行为取决于用户定义的超时和命令类型。
要检查连接状态(活动还是挂起),请在写入程序节点上使用 sp_iqconnection 系统过程,或在协调器上使用 sp_iqmpxsuspendedconninfo 系统过程。运行 sp_iqmpxincstatistics 获得自服务器启动以来 INC 状态汇总统计信息的快照。
该功能不会对在协调器上启动的事务产生影响。