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
Creare una connessione al Sottoscrittore tramite la classe ServerConnection.
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.
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.
(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.
Utilizzando l'ID sessione ottenuto nel passaggio 3, chiamare uno dei metodi indicati di seguito per ottenere informazioni sui dettagli di una determinata sessione.
GetSessionDetails: restituisce una matrice di oggetti MergeSessionDetail per il parametro sessionID specificato.
GetSessionDetailsDataSet: restituisce un oggetto DataSet con informazioni sul parametro sessionID specificato.
Per monitorare le proprietà di replica per tutte le pubblicazioni in un server di distribuzione
Creare una connessione al server di distribuzione tramite la classe ServerConnection.
Creare un'istanza della classe ReplicationMonitor.
Impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.
Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto.
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
Creare una connessione al server di distribuzione tramite la classe ServerConnection.
Recuperare un oggetto PublisherMonitor mediante uno dei modi indicati di seguito.
Creare un'istanza della classe PublisherMonitor. Impostare la proprietà Name per il server di pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, il nome del server di pubblicazione è definito in modo non corretto o la pubblicazione non esiste.
Utilizzare l'oggetto PublisherMonitorCollection a cui si accede mediante la proprietà PublisherMonitors di un oggetto ReplicationMonitor esistente.
Eseguire uno o più metodi riportati di seguito per ottenere le informazioni di replica per tutte le pubblicazioni appartenenti al server di pubblicazione.
EnumDistributionAgentSessionDetails: restituisce un oggetto DataSet che contiene dettagli sull'agente di distribuzione specificato e sulla sessione.
EnumDistributionAgentSessions: restituisce un oggetto DataSet che contiene informazioni di sessione relative all'agente di distribuzione specificato.
EnumErrorRecords: restituisce un oggetto DataSet che contiene informazioni del record di errori relative all'errore specificato.
EnumLogReaderAgentSessionDetails: restituisce un oggetto DataSet che contiene dettagli sull'agente di lettura log specificato e sulla sessione.
EnumLogReaderAgentSessions: restituisce un oggetto DataSet che contiene informazioni di sessione relative all'agente di lettura log specificato.
EnumMergeAgentSessionDetails: restituisce un oggetto DataSet che contiene dettagli sull'agente di merge specificato e sulla sessione.
EnumMergeAgentSessionDetails2: restituisce un oggetto DataSet che contiene ulteriori dettagli sull'agente di merge specificato e sulla sessione.
EnumMergeAgentSessions: restituisce un oggetto DataSet che contiene informazioni di sessione relative all'agente di merge specificato.
EnumMergeAgentSessions2: restituisce un oggetto DataSet che contiene ulteriori informazioni di sessione relative all'agente di merge specificato.
EnumPublications: restituisce un oggetto DataSet che contiene informazioni su tutte le pubblicazioni nel server di distribuzione.
EnumPublications2: restituisce un oggetto DataSet che contiene ulteriori informazioni su tutte le pubblicazioni nel server di distribuzione.
EnumSnapshotAgentSessionDetails: restituisce un oggetto DataSet che contiene dettagli sull'agente snapshot specificato e sulla sessione.
EnumSnapshotAgentSessions: restituisce un oggetto DataSet che contiene informazioni di sessione relative all'agente snapshot specificato.
EnumSubscriptions: restituisce un oggetto DataSet che contiene informazioni su tutte le sottoscrizioni delle pubblicazioni nel server di distribuzione.
Per monitorare le proprietà di una pubblicazione specifica nel server di distribuzione
Creare una connessione al server di distribuzione tramite la classe ServerConnection.
Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.
Creare un'istanza della classe PublicationMonitor. Impostare le proprietà DistributionDBName, PublisherName, PublicationDBName e Name per la pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della pubblicazione sono definite in modo non corretto o la pubblicazione non esiste.
Utilizzare l'oggetto PublicationMonitorCollection a cui si accede mediante la proprietà PublicationMonitors di un oggetto PublisherMonitor esistente.
Eseguire uno o più metodi riportati di seguito per ottenere informazioni su questa pubblicazione.
EnumErrorRecords: restituisce un oggetto DataSet che contiene record di errori relativi all'errore specificato.
EnumLogReaderAgent: restituisce un oggetto DataSet che contiene informazioni sull'agente di lettura log della pubblicazione.
EnumMonitorThresholds: restituisce un oggetto DataSet che contiene informazioni sui valori di soglia degli avvisi di monitoraggio impostati per la pubblicazione.
EnumQueueReaderAgent: restituisce un oggetto DataSet che contiene informazioni sull'agente di lettura coda utilizzato dalla pubblicazione.
EnumSnapshotAgent: restituisce un oggetto DataSet che contiene informazioni sull'agente snapshot della pubblicazione.
EnumSubscriptions: restituisce un oggetto DataSet che contiene informazioni sulle sottoscrizioni della pubblicazione.
EnumSubscriptions2- restituisce un oggetto DataSet che contiene ulteriori informazioni sulle sottoscrizioni della pubblicazione in base all'oggetto SubscriptionResultOption specificato.
EnumTracerTokenHistory: restituisce un oggetto DataSet che contiene informazioni sulla latenza per il token di traccia specificato.
EnumTracerTokens: restituisce un oggetto DataSet che contiene informazioni su tutti i token di traccia inseriti nella pubblicazione.
Per monitorare i comandi transazionali in attesa di essere applicati al Sottoscrittore
Creare una connessione al server di distribuzione tramite la classe ServerConnection.
Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.
Creare un'istanza della classe PublicationMonitor. Impostare le proprietà DistributionDBName, PublisherName, PublicationDBName e Name per la pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della pubblicazione sono definite in modo non corretto o la pubblicazione non esiste.
Utilizzare l'oggetto PublicationMonitorCollection a cui si accede mediante la proprietà PublicationMonitors di un oggetto PublisherMonitor esistente.
Eseguire il metodo TransPendingCommandInfo che restituisce un oggetto PendingCommandInfo.
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
Creare una connessione al server di distribuzione tramite la classe ServerConnection.
Recuperare un oggetto PublicationMonitor mediante uno dei modi indicati di seguito.
Creare un'istanza della classe PublicationMonitor. Impostare le proprietà DistributionDBName, PublisherName, PublicationDBName e Name per la pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà della pubblicazione sono definite in modo non corretto o la pubblicazione non esiste.
Utilizzare l'oggetto PublicationMonitorCollection a cui si accede mediante la proprietà PublicationMonitors di un oggetto PublisherMonitor esistente.
Eseguire il metodo EnumMonitorThresholds. Tenere presenti le impostazioni dei valori di soglia correnti nell'oggetto ArrayList restituito degli oggetti MonitorThreshold.
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.