Procedura: Monitoraggio della replica a livello di programmazione (programmazione RMO)

Monitoraggio replica è uno strumento grafico che consente di monitorare la topologia di replica. È possibile accedere agli stessi dati di monitoraggio a livello di programmazione utilizzando oggetti RMO (Replication Management Objects). Le classi RMO consentono di programmare le attività seguenti:

  • Monitoraggio dei risultati delle ultime cinque esecuzioni dell'agente di merge nel Sottoscrittore.

  • Monitoraggio dello stato dei server di pubblicazione, delle pubblicazioni e delle sottoscrizioni.

  • Monitoraggio dei comandi transazionali in attesa di essere applicati a uno o più Sottoscrittori.

  • Definizione delle misurazioni del valore di soglia che determinano la necessità di un intervento per una pubblicazione.

  • Monitoraggio dello stato dei token di traccia. Per ulteriori informazioni, vedere Procedura: Misurazione della latenza e convalida delle connessioni per la replica transazionale (programmazione RMO).

Per monitorare una sottoscrizione di una pubblicazione di tipo merge nel Sottoscrittore

  1. Creare una connessione al Sottoscrittore tramite la classe ServerConnection.

  2. Creare un'istanza della classe MergeSubscriberMonitor e impostare le proprietà Publisher, Publication, PublisherDB e SubscriberDB per la sottoscrizione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.

  3. Chiamare uno dei metodi indicati di seguito per ottenere informazioni sulle sessioni dell'agente di merge per la sottoscrizione.

    • GetSessionsSummary()()()(): restituisce una matrice di oggetti MergeSessionSummary con informazioni sulle ultime cinque sessioni dell'agente di merge al massimo. Tenere presente il valore della proprietà SessionID()()()() per le sessioni desiderate.

    • GetSessionsSummary(Int32): restituisce una matrice di oggetti MergeSessionSummary con informazioni sulle sessioni dell'agente di merge che hanno avuto luogo durante il numero passato di ore specificato come parametro hours (ultime cinque sessioni al massimo). Tenere presente il valore della proprietà SessionID()()()() per le sessioni desiderate.

    • GetLastSessionSummary: restituisce un oggetto MergeSessionSummary con informazioni sull'ultima sessione dell'agente di merge. Tenere presente il valore della proprietà SessionID()()()() per questa sessione.

    • GetSessionsSummaryDataSet: restituisce un oggetto DataSet con informazioni sulle ultime cinque sessioni dell'agente di merge al massimo, una in ciascuna riga. Tenere presente il valore della colonna Session_id per le sessioni desiderate.

    • GetLastSessionSummaryDataRow: restituisce un oggetto DataRow con informazioni sull'ultima sessione dell'agente di merge. Tenere presente il valore della colonna Session_id per questa sessione.

  4. (Facoltativo) Chiamare il metodo RefreshSessionSummary(MergeSessionSummary%) per aggiornare i dati per l'oggetto MergeSessionSummary passato come mss, o chiamare il metodo RefreshSessionSummary(DataRow%) per aggiornare i dati nell'oggetto DataRow passato come drRefresh.

  5. Utilizzando l'ID sessione ottenuto nel passaggio 3, chiamare uno dei metodi indicati di seguito per ottenere informazioni sui dettagli di una determinata sessione.

Per monitorare le proprietà di replica per tutte le pubblicazioni in un server di distribuzione

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection.

  2. Creare un'istanza della classe ReplicationMonitor.

  3. Impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.

  4. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto.

  5. Eseguire uno o più metodi riportati di seguito per ottenere le informazioni di replica per tutti i server di pubblicazione che utilizzano il server di distribuzione.

    • EnumDistributionAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli agenti di distribuzione nel server di distribuzione.

    • EnumErrorRecords: restituisce un oggetto DataSet che contiene informazioni sugli errori archiviati nel server di distribuzione.

    • EnumLogReaderAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli agenti di lettura log nel server di distribuzione.

    • EnumMergeAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli agenti di merge nel server di distribuzione.

    • EnumMiscellaneousAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli altri agenti di replica nel server di distribuzione.

    • EnumPublishers: restituisce un oggetto DataSet che contiene informazioni su tutti i server di pubblicazione nel server di distribuzione.

    • EnumPublishers2: restituisce un oggetto DataSet che restituisce i server di pubblicazione che utilizzano il server di distribuzione.

    • EnumQueueReaderAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli agenti di lettura coda nel server di distribuzione.

    • EnumQueueReaderAgentSessionDetails: restituisce un oggetto DataSet che contiene dettagli sull'agente di lettura coda specificato e sulla sessione.

    • EnumQueueReaderAgentSessions: restituisce un oggetto DataSet che contiene informazioni di sessione relative all'agente di lettura coda specificato.

    • EnumSnapshotAgents: restituisce un oggetto DataSet che contiene informazioni su tutti gli agenti snapshot nel server di distribuzione.

Per monitorare le proprietà della pubblicazione per un server di pubblicazione specifico nel server di distribuzione

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection.

  2. Recuperare un oggetto PublisherMonitor mediante uno dei modi indicati di seguito.

  3. Eseguire uno o più metodi riportati di seguito per ottenere le informazioni di replica per tutte le pubblicazioni appartenenti al server di pubblicazione.

Per monitorare le proprietà di una pubblicazione specifica nel server di distribuzione

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.

  3. Eseguire uno o più metodi riportati di seguito per ottenere informazioni su questa pubblicazione.

Per monitorare i comandi transazionali in attesa di essere applicati al Sottoscrittore

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.

  3. Eseguire il metodo TransPendingCommandInfo che restituisce un oggetto PendingCommandInfo.

  4. Utilizzare le proprietà dell'oggetto PendingCommandInfo per determinare il numero stimato di comandi in sospeso e il tempo necessario per completare il recapito di tali comandi.

Per impostare i valori di soglia degli avvisi di monitoraggio per una pubblicazione

  1. Creare una connessione al server di distribuzione tramite la classe ServerConnection.

  2. Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.

  3. Eseguire il metodo EnumMonitorThresholds. Tenere presenti le impostazioni dei valori di soglia correnti nell'oggetto ArrayList restituito degli oggetti MonitorThreshold.

  4. Eseguire il metodo ChangeMonitorThreshold. Passare i parametri indicati di seguito.

    • metricID: un valore Int32 che rappresenta la misurazione del valore di soglia di monitoraggio nella tabella riportata di seguito.

      Valore

      Descrizione

      1

      expiration: monitora le scadenze imminenti delle sottoscrizioni di pubblicazioni transazionali.

      2

      latency: monitora le prestazioni delle sottoscrizioni di pubblicazioni transazionali.

      4

      mergeexpiration: monitora le scadenze imminenti delle sottoscrizioni di pubblicazioni di tipo merge.

      5

      mergeslowrunduration: monitora la durata delle sincronizzazioni di tipo merge attraverso connessioni remote a larghezza di banda ridotta.

      6

      mergefastrunduration: monitora la durata delle sincronizzazioni di tipo merge attraverso connessioni LAN a larghezza di banda elevata.

      7

      mergefastrunspeed: monitora la velocità delle sincronizzazioni di tipo merge attraverso connessioni LAN a larghezza di banda elevata.

      8

      mergeslowrunspeed: monitora la velocità delle sincronizzazioni di tipo merge attraverso connessioni remote a larghezza di banda ridotta.

    • enable: valore Boolean che indica se la misurazione è attivata per la pubblicazione.

    • thresholdValue: valore integer che imposta il valore di soglia.

    • shouldAlert- valore integer che indica se il valore di soglia deve generare un avviso.