Как измерить задержку и проверить соединения для репликации транзакций (программирование объектов RMO)
Для репликации транзакций важна возможность проверки подключения серверов и измерения задержки. Задержка измеряется с помощью трассировочных маркеров. Задержка — это время, которое проходит с момента внесения изменений на издателе до момента их распространения на подписчики. Дополнительные сведения см. в разделе Проверка соединений и измерение задержки для репликации транзакций. Эти сведения могут быть получены программно с помощью объектов RMO.
Отправка трассировочного маркера в публикацию транзакций
Создайте соединение с издателем с помощью класса ServerConnection.
Создайте экземпляр класса TransPublication.
Задайте для публикации свойства Name и DatabaseName, а также установите созданное на шаге 1 соединение ServerConnection в качестве значения для свойства.
Чтобы получить свойства объекта, вызовите метод LoadProperties. Если этот метод возвращает false, то либо на шаге 3 были неверно определены свойства публикации, либо публикация не существует.
Вызовите метод PostTracerToken. Этот метод обеспечивает вставку трассировочного маркера в журнал транзакций публикации.
Измерение задержки и проверка соединений для публикации транзакций
Создайте соединение с распространителем с помощью класса ServerConnection.
Создайте экземпляр класса PublicationMonitor.
Установите свойства Name, DistributionDBName, PublisherName и PublicationDBName, а в качестве значения свойства ConnectionContext установите созданное на шаге 1 соединение.
Чтобы получить свойства объекта, вызовите метод LoadProperties. Если этот метод возвращает false, то либо на шаге 3 были неверно определены свойства монитора публикации, либо публикация не существует.
Вызовите метод EnumTracerTokens. Приведите возвращенный объект ArrayList к типу массива объектов TracerToken.
Вызовите метод EnumTracerTokenHistory. Передайте значение TracerTokenID()()()() для трассировочного маркера, полученного на шаге 5. В результате будут возвращены сведения о задержке для выделенного трассировочного маркера в виде объекта DataSet. Если возвращены все сведения о трассировочном маркере, то существует соединение между издателем и распространителем, а также соединение между распространителем и подписчиком, и топология репликации работоспособна.
Удаление трассировочных маркеров
Создайте соединение с распространителем с помощью класса ServerConnection.
Создайте экземпляр класса PublicationMonitor.
Установите свойства Name, DistributionDBName, PublisherName и PublicationDBName, а в качестве значения свойства ConnectionContext установите созданное на шаге 1 соединение.
Чтобы получить свойства объекта, вызовите метод LoadProperties. Если этот метод возвращает false, то либо на шаге 3 были неверно определены свойства монитора публикации, либо публикация не существует.
Вызовите метод EnumTracerTokens. Приведите возвращенный объект ArrayList к типу массива объектов TracerToken.
Вызовите метод CleanUpTracerTokenHistory. Передайте одно из следующих значений.
Значение TracerTokenID()()()() для трассировочного маркера, полученного на шаге 5. В результате этого сведения для выделенного маркера будут удалены.
Объект DateTime. В результате этого будут удалены сведения обо всех маркерах, созданных до наступления указанного момента времени.