如何以编程方式监视复制(RMO 编程)

复制监视器是一种图形工具,可用来监视复制拓扑。 可以使用复制管理对象 (RMO) 以编程方式访问相同的监视数据。 RMO 类使您可以对以下任务进行编程:

  • 监视在订阅服务器上运行的最后五个合并代理的结果。

  • 监视发布服务器、发布和订阅的状态。

  • 监视正等待应用到一个或多个订阅服务器上的事务处理命令。

  • 定义用于确定发布何时需要干预的阈值标准。

  • 监视跟踪令牌的状态。 有关详细信息,请参阅如何为事务复制测量滞后时间并验证连接(RMO 编程)

监视对订阅服务器上的合并发布的订阅

  1. 使用 ServerConnection 类创建与订阅服务器的连接。

  2. 创建 MergeSubscriberMonitor 类的实例,为订阅设置 PublisherPublicationPublisherDBSubscriberDB 属性并将 ConnectionContext 属性设置为步骤 1 中创建的 ServerConnection

  3. 调用以下方法之一返回有关该订阅的合并代理会话的信息:

    • GetSessionsSummary()()()() - 返回一组 MergeSessionSummary 对象,其中包含最后五个合并代理会话的相关信息。 请注意任何相关会话的 SessionID()()()() 值。

    • GetSessionsSummary(Int32) - 返回一组 MergeSessionSummary 对象,其中包含过去几个小时(作为 hours 参数传入)中发生的合并代理会话(最多是最后五个会话)的相关信息。 请注意任何相关会话的 SessionID()()()() 值。

    • GetLastSessionSummary - 返回 MergeSessionSummary 对象,该对象具有最后一个合并代理会话的相关信息。 请注意此会话的 SessionID()()()() 值。

    • GetSessionsSummaryDataSet - 返回 DataSet 对象,其中包含最多最后五个合并代理会话的相关信息,每个合并代理会话占一行。 请注意任何相关会话的 Session_id 列的值。

    • GetLastSessionSummaryDataRow - 返回 DataRow 对象,该对象具有最后一个合并代理会话的相关信息。 请注意此会话的 Session_id 列的值。

  4. (可选)调用 RefreshSessionSummary(MergeSessionSummary%) 刷新作为 mss, 传递的 MergeSessionSummary 对象的数据,或调用 RefreshSessionSummary(DataRow%) 刷新作为 drRefresh 传递的 DataRow 对象中的数据。

  5. 使用步骤 3 中获取的会话 ID 调用以下方法之一,以返回有关特定会话的详细信息:

监视分发服务器上所有发布的复制属性

  1. 使用 ServerConnection 类创建与分发服务器的连接。

  2. 创建 ReplicationMonitor 类的实例。

  3. ConnectionContext 属性设置为步骤 1 中创建的 ServerConnection

  4. 调用 LoadProperties 方法获取该对象的属性。

  5. 执行以下一种或多种方法返回使用该分发服务器的所有发布服务器的复制信息。

监视分发服务器上特定发布服务器的发布属性

  1. 使用 ServerConnection 类创建与分发服务器的连接。

  2. 以其中一种方法获取 PublisherMonitor 对象。

  3. 执行以下一种或多种方法返回有关属于该发布服务器的所有发布的复制信息。

监视分发服务器上的特定发布的属性

  1. 使用 ServerConnection 类创建与分发服务器的连接。

  2. 通过下列方法之一获取 PublicationMonitor 对象。

  3. 执行以下一种或多种方法返回有关此发布的信息。

监视正等待在订阅服务器上应用的事务处理命令

  1. 使用 ServerConnection 类创建与分发服务器的连接。

  2. 通过下列方法之一获取 PublicationMonitor 对象。

  3. 执行 TransPendingCommandInfo 方法,这种方法可返回 PendingCommandInfo 对象。

  4. 使用该 PendingCommandInfo 对象的属性可估算挂起命令的数目以及完成这些命令的传递所需的时间。

为发布设置监视器警告阈值

  1. 使用 ServerConnection 类创建与分发服务器的连接。

  2. 通过下列方法之一获取 PublicationMonitor 对象。

  3. 执行 EnumMonitorThresholds 方法。 请注意 MonitorThreshold 对象已返回的 ArrayList 中的当前阈值设置。

  4. 执行 ChangeMonitorThreshold 方法。 传递以下参数:

    • metricID - Int32 值,它表示下表中的监视阈值指标:

      说明

      1

      expiration - 监视对事务发布的订阅是否即将过期。

      2

      latency - 监视对事务发布的订阅的性能。

      4

      mergeexpiration - 监视对合并发布的订阅是否即将过期。

      5

      mergeslowrunduration - 监视通过低带宽(拨号)连接进行的合并同步的持续时间。

      6

      mergefastrunduration - 监视通过高带宽 (LAN) 连接进行的合并同步的持续时间。

      7

      mergefastrunspeed - 监视通过高带宽 (LAN) 连接进行的合并同步的同步速率。

      8

      mergeslowrunspeed - 监视通过低带宽(拨号)连接进行的合并同步的同步速率。

    • enable - 用于指示是否为发布启用指标的 Boolean 值。

    • thresholdValue - 用于设置阈值的整数值。

    • shouldAlert - 用于指示在此阈值是否应生成警报的整数。