Procédure : analyser la réplication par programmation (programmation RMO)

Le moniteur de réplication est un outil graphique permettant d'analyser la topologie de réplication. Vous pouvez accéder par programmation aux mêmes données d'analyse en utilisant les objets RMO. Les classes RMO permettent de programmer les tâches suivantes :

Pour surveiller un abonnement à une publication de fusion sur l'Abonné

  1. Créez une connexion à l'Abonné en utilisant la classe ServerConnection.

  2. Créez une instance de la classe MergeSubscriberMonitor et définissez les propriétés Publisher, Publication, PublisherDB, SubscriberDB de l'abonnement, puis attribuez à la propriété ConnectionContext la valeur ServerConnection créée dans l'étape 1.

  3. Appelez l'une des méthodes suivantes pour retourner les informations sur les sessions de l'Agent de fusion de cet abonnement :

    • GetSessionsSummary()()()() - retourne un tableau d'objets MergeSessionSummary avec des informations sur les cinq dernières sessions au plus de l'Agent de fusion. Notez la valeur SessionID()()()() pour toutes les sessions dignes d'intérêt.

    • GetSessionsSummary(Int32)- retourne un tableau d'objets MergeSessionSummary avec les informations sur les sessions de l'Agent de fusion qui se sont produites pendant le nombre passé d'heures transmis comme paramètre hours (jusqu'aux cinq dernières sessions au plus). Notez la valeur SessionID()()()() pour toutes les sessions dignes d'intérêt.

    • GetLastSessionSummary- retourne un objet MergeSessionSummary avec les informations sur la dernière session de l'Agent de fusion. Notez la valeur SessionID()()()() de cette session.

    • GetSessionsSummaryDataSet - retourne un objet DataSet avec les informations sur les cinq dernières sessions au plus de l'Agent de fusion, une session par ligne. Notez la valeur de la colonne Session_id pour toutes les sessions dignes d'intérêt.

    • GetLastSessionSummaryDataRow- retourne un objet DataRow avec les informations sur la dernière session de l'Agent de fusion. Notez la valeur de la colonne Session_id pour cette session.

  4. (Facultatif) Appelez RefreshSessionSummary(MergeSessionSummary%) pour actualiser les données de l'objet MergeSessionSummary transmis comme mss, ou appelez RefreshSessionSummary(DataRow%) pour actualiser les données de l'objet DataRow transmis comme drRefresh.

  5. À l'aide de l'ID de session obtenu à l'étape 3, appelez l'une des méthodes suivantes pour retourner les informations sur les détails d'une session particulière :

Pour surveiller les propriétés de réplication de toutes les publications sur un serveur de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Créez une instance de la classe ReplicationMonitor.

  3. Définissez la propriété ConnectionContext avec le ServerConnection créé au cours de l'étape 1.

  4. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet.

  5. Exécutez une ou plusieurs des méthodes suivantes pour retourner les informations de réplication de tous les serveurs de publication qui utilisent ce serveur de distribution.

    • EnumDistributionAgents- retourne un objet DataSet qui contient des informations sur tous les Agents de distribution de ce serveur de distribution.

    • EnumErrorRecords- retourne un objet DataSet qui contient des informations sur les erreurs stockées sur le serveur de distribution.

    • EnumLogReaderAgents- retourne un objet DataSet qui contient des informations sur tous les Agents de lecture du journal de ce serveur de distribution.

    • EnumMergeAgents- retourne un objet DataSet qui contient des informations sur tous les Agents de fusion de ce serveur de distribution.

    • EnumMiscellaneousAgents- retourne un objet DataSet qui contient des informations sur tous les autres agents de réplication de ce serveur de distribution.

    • EnumPublishers- retourne un objet DataSet qui contient des informations sur tous les serveurs de publication de ce serveur de distribution.

    • EnumPublishers2- retourne un objet DataSet qui contient les serveurs de publication qui utilisent ce serveur de distribution.

    • EnumQueueReaderAgents- retourne un objet DataSet qui contient des informations sur tous les Agents de lecture de la file d'attente de ce serveur de distribution.

    • EnumQueueReaderAgentSessionDetails- retourne un objet DataSet qui contient des détails sur l'Agent de lecture de la file d'attente et la session spécifiés.

    • EnumQueueReaderAgentSessions- retourne un objet DataSet qui contient des informations de session sur l'Agent de lecture de la file d'attente spécifié.

    • EnumSnapshotAgents- retourne un objet DataSet qui contient des informations sur tous les Agents de capture instantanée de ce serveur de distribution.

Pour analyser les propriétés de publication d'un serveur de publication spécifique d'un serveur de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Récupérez un objet PublisherMonitor par l'un ou l'autre de ces moyens.

  3. Exécutez une ou plusieurs des méthodes suivantes pour retourner les informations de réplication de toutes les publications qui appartiennent à ce serveur de publication.

Pour analyser les propriétés d'une publication spécifique du serveur de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Récupérez un objet PublicationMonitor par l'un ou l'autre de ces moyens.

  3. Exécutez une ou plusieurs des méthodes suivantes pour retourner des informations sur cette publication.

Pour analyser les commandes transactionnelles en attente d'application sur l'Abonné

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Récupérez un objet PublicationMonitor par l'un ou l'autre de ces moyens.

  3. Exécutez la méthode TransPendingCommandInfo, qui retourne un objet PendingCommandInfo.

  4. Utilisez les propriétés de cet objet PendingCommandInfo pour déterminer le nombre estimé de commandes en attente et la durée nécessaire à la remise complète de ces commandes.

Pour définir les seuils d'avertissement du moniteur pour une publication

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Récupérez un objet PublicationMonitor par l'un ou l'autre de ces moyens.

  3. Exécutez la méthode EnumMonitorThresholds. Notez les paramètres de seuil en cours dans le ArrayList retourné des objets MonitorThreshold.

  4. Exécutez la méthode ChangeMonitorThreshold. Transmettez les paramètres suivants :

    • metricID- une valeur Int32 qui représente le seuil d'analyse métrique de la table suivante :

      Valeur

      Description

      1

      expiration : contrôle l'expiration imminente des abonnements aux publications transactionnelles.

      2

      latency : contrôle les performances des abonnements aux publications transactionnelles.

      4

      mergeexpiration : contrôle l'expiration imminente des abonnements aux publications de fusion.

      5

      mergeslowrunduration : contrôle la durée des synchronisations de fusion sur les connexions à faible bande passante (accès à distance).

      6

      mergefastrunduration : contrôle la durée des synchronisations de fusion sur les connexions haut débit (LAN).

      7

      mergefastrunspeed : contrôle la vitesse de synchronisation des synchronisations de fusion sur les connexions haut débit (LAN).

      8

      mergeslowrunspeed : contrôle la vitesse de synchronisation des synchronisations de fusion sur les connexions lentes (accès distant).

    • enable- valeur Boolean qui indique si le métrique est activé pour la publication.

    • thresholdValue- valeur entière qui définit le seuil.

    • shouldAlert- entier qui indique si ce seuil doit générer une alerte.