如何为事务复制测量滞后时间并验证连接(RMO 编程)

有关事务复制,重要的是能够验证已连接该服务器并测量滞后时间。 通过使用跟踪令牌测量滞后时间。 滞后时间是将在发布服务器中进行的更改传播到订阅服务器所用的时间。 有关详细信息,请参阅为事务复制测量滞后时间和验证连接。 可通过使用复制管理对象 (RMO) 以编程方式获得此信息。

若要将跟踪令牌发布到事务发布

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

  2. 创建 TransPublication 类的实例。

  3. 设置发布的 NameDatabaseName 属性,并将 ConnectionContext 属性设置为步骤 1 中创建的连接。

  4. 调用 LoadProperties 方法获取该对象的属性。 如果此方法返回 false,则说明步骤 3 中的发布属性定义不正确,或者此发布不存在。

  5. 调用 PostTracerToken 方法。 此方法将跟踪令牌插入到发布的事务日志中。

确定事务发布的滞后时间并验证连接

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

  2. 创建 PublicationMonitor 类的实例。

  3. 设置 NameDistributionDBNamePublisherNamePublicationDBName 属性,并将 ConnectionContext 属性设置为步骤 1 中创建的连接。

  4. 调用 LoadProperties 方法获取该对象的属性。 如果此方法返回 false,则说明步骤 3 中发布监视器的属性定义错误或此发布不存在。

  5. 调用 EnumTracerTokens 方法。 将返回的 ArrayList 对象转换为 TracerToken 对象数组。

  6. 调用 EnumTracerTokenHistory 方法。 为步骤 5 中的跟踪令牌传递 TracerTokenID()()()() 的值。这样会将所选跟踪令牌的滞后信息作为 DataSet 对象返回。 如果返回了所有跟踪令牌信息,则发布服务器与分发服务器之间的连接和分发服务器与订阅服务器之间的连接同时存在,并且复制拓扑工作正常。

删除跟踪令牌

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

  2. 创建 PublicationMonitor 类的实例。

  3. 设置 NameDistributionDBNamePublisherNamePublicationDBName 属性,并将 ConnectionContext 属性设置为步骤 1 中创建的连接。

  4. 调用 LoadProperties 方法获取该对象的属性。 如果此方法返回 false,则说明步骤 3 中发布监视器的属性定义错误或此发布不存在。

  5. 调用 EnumTracerTokens 方法。 将返回的 ArrayList 对象转换为 TracerToken 对象数组。

  6. 调用 CleanUpTracerTokenHistory 方法。 传递以下值之一:

    • 步骤 5 中跟踪令牌的 TracerTokenID()()()()。这样会删除所选令牌的信息。

    • DateTime 对象。 这会删除早于指定日期和时间的所有令牌的信息。