如何:以程式設計方式監視複寫 (RMO 程式設計)

「複寫監視器」是一個允許您監視複寫拓樸的圖形化工具。您可以使用「複寫管理物件」(RMO) 以程式設計的方式存取相同的監視資料。RMO 類別可以用來設計下列工作:

  • 監視「訂閱者」端最後五次的「合併代理程式」執行結果。

  • 監視「發行者」、發行集和訂閱的狀態。

  • 監視在一或多個「訂閱者」端等候套用的交易式命令。

  • 定義臨界值標準,以決定發行集何時需要介入。

  • 監視追蹤 Token 的狀態。如需詳細資訊,請參閱<如何:針對交易式複寫計算遲延並驗證連接 (RMO 程式設計)>。

若要監視訂閱者端合併式發行集的訂閱

  1. 使用 ServerConnection 類別建立與「訂閱者」的連接。

  2. 建立 MergeSubscriberMonitor 類別的執行個體、設定訂閱的 PublisherPublicationPublisherDBSubscriberDB 屬性,以及將 ConnectionContext 屬性設定為步驟 1 中所建立的 ServerConnection

  3. 呼叫下列其中一個方法,以傳回此訂閱的「合併代理程式」工作階段的相關資訊:

    • GetSessionsSummary()()()() - 傳回 MergeSessionSummary 物件的陣列,最多提供最後五個「合併代理程式」工作階段的相關資訊。請記下感興趣之任何工作階段的 SessionID()()()() 值。

    • GetSessionsSummary(Int32) - 傳回 MergeSessionSummary 物件,提供在經過的小時數期間 (如 hours 參數所指定) 所發生的「合併代理程式」工作階段的相關資訊 (最多達最後五個工作階段)。請注意感興趣之任何工作階段的 SessionID()()()() 值。

    • GetLastSessionSummary - 傳回 MergeSessionSummary 物件,提供最後一個「合併代理程式」工作階段的相關資訊。請注意此工作階段的 SessionID()()()() 值。

    • GetSessionsSummaryDataSet - 傳回 DataSet 物件,最多提供最後五個「合併代理程式」工作階段的相關資訊 (每個資料列顯示一個工作階段)。請記下感興趣之任何工作階段的 Session_id 資料行值。

    • GetLastSessionSummaryDataRow - 傳回 DataRow 物件,提供最後一個「合併代理程式」工作階段的相關資訊。請記下此工作階段的 Session_id 資料行值。

  4. (選擇性) 呼叫 RefreshSessionSummary(MergeSessionSummary%),以重新整理以 mss, 所傳遞之 MergeSessionSummary 物件的資料,或呼叫 RefreshSessionSummary(DataRow%),以重新整理以 drRefresh 所傳遞之 DataRow 物件的資料。

  5. 使用步驟 3 中取得的工作階段識別碼,呼叫下列其中一個方法來傳回有關特定工作階段詳細資料的資訊。

若要監視在散發者端所有發行集的複寫屬性

  1. 使用 ServerConnection 類別建立與「散發者」的連接。

  2. 建立 ReplicationMonitor 類別的執行個體。

  3. ConnectionContext 屬性設定為在步驟 1 中建立的 ServerConnection

  4. 呼叫 LoadProperties 方法以取得物件的屬性。

  5. 執行下列其中一或多個方法,以針對使用此散發者的所有發行者傳回複寫資訊。

若要監視在散發者端特定發行者的發行集屬性

  1. 使用 ServerConnection 類別建立與「散發者」的連接。

  2. 以下列其中一種方法取得 PublisherMonitor 物件。

  3. 執行下列其中一或多個方法,針對屬於此「發行者」的所有發行集傳回複寫資訊。

若要監視散發者端特定發行集的屬性

  1. 使用 ServerConnection 類別建立與「散發者」的連接。

  2. 以下列其中一種方法取得 PublicationMonitor 物件。

  3. 執行下列其中一或多個方法,傳回有關此發行集的詳細資訊。

若要監視在訂閱者端等候套用的交易式命令

  1. 使用 ServerConnection 類別建立與「散發者」的連接。

  2. 以下列其中一種方法取得 PublicationMonitor 物件。

  3. 執行 TransPendingCommandInfo 方法,傳回 PendingCommandInfo 物件。

  4. 使用此 PendingCommandInfo 物件的屬性判斷暫止命令的估計數,以及完成傳遞這些命令所需的時間長度。

若要設定發行集的監視器警告臨界值

  1. 使用 ServerConnection 類別建立與「散發者」的連接。

  2. 以下列其中一種方法取得 PublicationMonitor 物件。

  3. 執行 EnumMonitorThresholds 方法。請注意在 MonitorThreshold 物件的傳回 ArrayList 中的目前臨界值設定。

  4. 執行 ChangeMonitorThreshold 方法。傳遞下列參數:

    • metricID - Int32 值,代表來自下列資料表的監視臨界值標準:

      描述

      1

      expiration - 監視交易式發行集的訂閱是否即將到期。

      2

      latency - 監視交易式發行集的訂閱效能。

      4

      mergeexpiration - 監視合併式發行集的訂閱是否即將到期。

      5

      mergeslowrunduration - 監視透過低頻寬 (撥號) 連接進行合併同步處理的持續時間。

      6

      mergefastrunduration - 監視透過高頻寬 (LAN) 連接進行合併同步處理的持續時間。

      7

      mergefastrunspeed - 監視透過高頻寬 (LAN) 連接進行合併同步處理的同步處理速率。

      8

      mergeslowrunspeed - 監視透過低頻寬 (撥號) 連接進行合併同步處理的同步處理速率。

    • enable - Boolean 值,代表是否已針對發行集啟用標準。

    • thresholdValue - 設定臨界值的整數值。

    • shouldAlert - 代表此臨界值是否應產生警示的整數。