Vorgehensweise: Programmgesteuertes Überwachen der Replikation (RMO-Programmierung)

Der Replikationsmonitor ist ein grafisches Tool, mit dem Sie die Replikationstopologie überwachen können. Mithilfe von Replikationsverwaltungsobjekten (RMO) können Sie programmgesteuert auf diese Überwachungsdaten zugreifen. RMO-Klassen ermöglichen das Programmieren der folgenden Tasks:

So überwachen Sie ein Abonnement für eine Mergeveröffentlichung auf dem Abonnenten

  1. Erstellen Sie eine Verbindung mit dem Abonnenten, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der MergeSubscriberMonitor-Klasse, und legen Sie die Eigenschaften Publisher, Publication, PublisherDB und SubscriberDB für das Abonnement fest, und legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest.

  3. Rufen Sie eine der folgenden Methoden auf, um Informationen zu Merge-Agentsitzungen für dieses Abonnement zurückzugeben:

    • GetSessionsSummary()()()() - gibt ein Array von MergeSessionSummary-Objekten mit Informationen zu maximal den letzten fünf Merge-Agentsitzungen zurück. Beachten Sie den Wert SessionID()()()() für alle Sitzungen, die von Interesse sind.

    • GetSessionsSummary(Int32) - gibt ein Array von MergeSessionSummary-Objekten mit Informationen zu Merge-Agentsitzungen zurück, die in der Anzahl der letzten Stunden aufgetreten sind, die als hours-Parameter übergeben wurde (maximal die letzten fünf Sitzungen). Beachten Sie den SessionID()()()()-Wert für alle Sitzungen, die von Interesse sind.

    • GetLastSessionSummary - gibt ein MergeSessionSummary-Objekt mit Informationen zu der letzten Merge-Agentsitzung zurück. Beachten Sie den SessionID()()()()-Wert für diese Sitzung.

    • GetSessionsSummaryDataSet - gibt ein DataSet-Objekt mit Informationen zu maximal den letzten fünf Merge-Agentsitzungen zurück (eine pro Zeile). Beachten Sie den Wert der Session_id-Spalte für alle Sitzungen, die von Interesse sind.

    • GetLastSessionSummaryDataRow - gibt ein DataRow-Objekt mit Informationen zu der letzten Merge-Agentsitzung zurück. Beachten Sie den Wert der Session_id-Spalte für diese Sitzung.

  4. (Optional) Rufen Sie RefreshSessionSummary(MergeSessionSummary%) auf, um die Daten für das MergeSessionSummary-Objekt zu aktualisieren, das als mss, übergeben wurde, oder rufen Sie RefreshSessionSummary(DataRow%) auf, um die Daten im DataRow-Objekt zu aktualisieren, das als drRefresh übergeben wurde.

  5. Rufen Sie mithilfe der in Schritt 3 abgerufenen Sitzungs-ID eine der folgenden Methoden auf, um Informationen zu den Details einer bestimmten Sitzung zurückzugeben:

So überwachen Sie die Replikationseigenschaften für alle Veröffentlichungen auf einem Verteiler

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der ReplicationMonitor-Klasse.

  3. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte ServerConnection fest.

  4. Rufen Sie die LoadProperties-Methode auf, um die Eigenschaften des Objekts abzurufen.

  5. Führen Sie mindestens eine der folgenden Methoden aus, um Replikationsinformationen für alle Verleger zurückzugeben, die diesen Verteiler verwenden:

So überwachen Sie die Veröffentlichungseigenschaften für einen bestimmten Verleger auf dem Verteiler

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Rufen Sie auf eine der folgenden Arten ein PublisherMonitor-Objekt ab.

  3. Führen Sie mindestens eine der folgenden Methoden aus, um Replikationsinformationen für alle Veröffentlichungen zurückzugeben, die zu diesem Verleger gehören.

So überwachen Sie die Eigenschaften für eine bestimmte Veröffentlichung auf dem Verteiler

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Rufen Sie auf eine der folgenden Arten ein PublicationMonitor-Objekt ab.

  3. Führen Sie mindestens eine der folgenden Methoden aus, um Informationen zu dieser Veröffentlichung zurückzugeben.

    • EnumErrorRecords - gibt ein DataSet-Objekt zurück, das Fehlereinträge zu dem angegebenen Fehler enthält.

    • EnumLogReaderAgent - gibt ein DataSet-Objekt zurück, das Informationen zu dem Protokolllese-Agents für diese Veröffentlichung enthält.

    • EnumMonitorThresholds - gibt ein DataSet-Objekt zurück, das Informationen zu den für diese Veröffentlichung festgelegten Warnungsschwellenwerten für die Überwachung enthält.

    • EnumQueueReaderAgent - gibt ein DataSet-Objekt zurück, das Informationen zu dem von dieser Veröffentlichung verwendeten Warteschlangenlese-Agent enthält.

    • EnumSnapshotAgent - gibt ein DataSet-Objekt zurück, das Informationen zu dem Snapshot-Agent für diese Veröffentlichung enthält.

    • EnumSubscriptions - gibt ein DataSet-Objekt zurück, das Informationen zu Abonnements für diese Veröffentlichung enthält.

    • EnumSubscriptions2 - gibt ein DataSet-Objekt zurück, das basierend auf der angegebenen SubscriptionResultOption zusätzliche Informationen zu Abonnements für diese Veröffentlichung enthält.

    • EnumTracerTokenHistory - gibt ein DataSet-Objekt zurück, das Latenzzeitinformationen für das angegebene Überwachungstoken enthält.

    • EnumTracerTokens - gibt ein DataSet-Objekt zurück, das Informationen zu allen in diese Veröffentlichung eingefügten Überwachungstoken enthält.

So überwachen Sie Transaktionsbefehle, die darauf warten, auf dem Abonnenten angewendet zu werden

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Rufen Sie auf eine der folgenden Arten ein PublicationMonitor-Objekt ab.

  3. Führen Sie die TransPendingCommandInfo-Methode aus, die ein PendingCommandInfo-Objekt zurückgibt.

  4. Verwenden Sie die Eigenschaften dieses PendingCommandInfo-Objekts, um die geschätzte Anzahl von ausstehenden Befehlen und die Dauer für das Abschließen der Übermittlung dieser Befehle zu bestimmen.

So legen Sie die Warnungsschwellenwerte für die Überwachung für eine Veröffentlichung fest

  1. Erstellen Sie eine Verbindung mit dem Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Rufen Sie auf eine der folgenden Arten ein PublicationMonitor-Objekt ab.

  3. Führen Sie die EnumMonitorThresholds-Methode aus. Beachten Sie die aktuellen Schwellenwerteinstellungen in der zurückgegebenen ArrayList von MonitorThreshold-Objekten.

  4. Führen Sie die ChangeMonitorThreshold-Methode aus. Übergeben Sie die folgenden Parameter:

    • metricID - ein Int32-Wert, der die Schwellenwertmetrik für die Überwachung aus der folgenden Tabelle darstellt:

      Wert

      Beschreibung

      1

      expiration - überwacht den bevorstehenden Ablauf von Abonnements für Transaktionsveröffentlichungen.

      2

      latency - überwacht die Leistung von Abonnements für Transaktionsveröffentlichungen.

      4

      mergeexpiration - überwacht den bevorstehenden Ablauf von Abonnements für Mergeveröffentlichungen.

      5

      mergeslowrunduration - überwacht die Dauer von Mergesynchronisierungen über Verbindungen mit niedriger Bandbreite (DFÜ-Verbindungen).

      6

      mergefastrunduration - überwacht die Dauer von Mergesynchronisierungen über Verbindungen mit niedriger Bandbreite (DFÜ-Verbindungen).

      7

      mergefastrunspeed - überwacht die Synchronisierungsgeschwindigkeit von Mergesynchronisierungen über Verbindungen mit hoher Bandbreite (LAN).

      8

      mergeslowrunspeed - überwacht die Synchronisierungsgeschwindigkeit von Mergesynchronisierungen über Verbindungen mit niedriger Bandbreite (DFÜ-Verbindungen).

    • enable - Boolean-Wert, der angibt, ob die Metrik für die Veröffentlichung aktiviert ist.

    • thresholdValue - ganzzahliger Wert, der den Schwellenwert festlegt.

    • shouldAlert - ganze Zahl, die angibt, ob dieser Schwellenwert eine Warnung generieren soll.