Share via


COM+ 追蹤

COM+ 追蹤服務可讓您建置自己的系統管理與診斷程式,以追蹤執行 COM+ 應用程式的狀態和效能。 COM+ 追蹤提供 COM+ 應用程式使用以及狀態資訊的統計數據,例如 COM+ 伺服器應用程式實例已暫停或已回收。 工具可以在診斷監視中使用追蹤資訊,或用於顯示用途。 例如,元件服務系統管理工具會使用 COM+ 追蹤,在 [COM+ 應用程式] 和 [執行行程] 資料夾中顯示 COM+ 應用程式實例的狀態。

COM+ 追蹤會計算並定期更新一組常用的計量,讓此資訊可供需要它的程式使用。 這與 COM+ 檢測類似,這兩個服務都會自動從 COM+ 應用程式實例收集數據,並讓取用者使用此數據。 不過,這些服務在提供的功能和一般使用方式中都有一些重要的差異。 下表摘要說明這些差異。

COM+ 檢測 COM+ 追蹤
細部數據。 COM+ 檢測服務會通知註冊的個別離散事件訂閱者,例如,在 COM+ 應用程式實例中發生的方法稱為 物件已終結。
匯總的數據。 COM+ 追蹤會計算並定期更新常用計量,以取得 COM+ 應用程式實例的狀態和效能。
事件訂閱者通常會使用臨機操作演算法和原則自行計算計量。
計量是由 COM+ 追蹤服務自動計算。 所有取用者都會取得相同的數據,而不支援自定義計量。
註冊訂用帳戶之後,取用者在事件發生之前,不會收到 COM+ 應用程式實例的任何資訊。
您可以隨時擷取所有 COM+ 應用程式實例的追蹤數據。
僅支援取用者的 COM+ 事件型訂閱機制。
支援 COM+ 事件型訂閱機制,以及在 COM 本機伺服器介面上進行輪詢。
範例
呼叫或傳回方法時通知。
平均呼叫回應時間、最近一段時間成功或失敗的方法呼叫數目、方法呼叫目前在方法呼叫中的物件數目。
當物件新增至物件集區或從物件集區取得時,通知。
集區中的物件數目、對象的總數。
COM+ 伺服器應用程式啟動時、暫停或回收的通知。
COM+ 伺服器應用程式進程的狀態(例如,它已暫停或回收)。
交易啟動、準備、中止和認可事件的通知。
沒有同等項目。
成功和失敗方法呼叫層級驗證嘗試的通知。
沒有同等項目。

雖然 COM+ 追蹤在數據範圍和計算計量的彈性方面更為有限,但它提供的計量應該足以用於各種不同的系統管理和診斷程式。 可能的話,使用 COM+ 追蹤可以簡化這些程式的設計。 此外,在生產系統中使用 COM+ 追蹤可能會大幅降低效能影響,使其更適合即時監視工具。

COM+ 追蹤如何收集數據

啟動 COM+ 伺服器應用程式程式時,COM+ 會向 追蹤器伺服器註冊程式,這是系統應用程式的元件。 COM+ 連結庫應用程式和服務中的元件,不含元件 (SWC) 內容也支持追蹤。 在程式中建立連結庫元件或 SWC 內容時,如果尚未註冊連結庫元件或 SWC 內容,COM+ 會向追蹤器伺服器註冊進程。

COM+ 會在程式中發生特定事件時更新追蹤程式的統計數據,例如建立物件或完成方法呼叫。 更新的數據會定期提交至追蹤器伺服器,此時可供取用者使用。 追蹤器伺服器也負責計算 COM+ 應用程式回收和停止響應監視功能所使用的一些計量。 此數據也適用於取用者。

追蹤數據會根據產生數據的程序來組織。 程式中個別 COM+ 應用程式或元件層級的數據也適用於需要此資訊的取用者。

事件與輪詢

COM+ 追蹤支援兩種機制,讓取用者從追蹤器伺服器取得追蹤數據、COM+ 事件型訂閱機制和 COM 本地伺服器介面。

需要定期收到更新追蹤數據通知的程式可以註冊 IComTrackingInfoEvents 事件介面的訂用帳戶。 追蹤器伺服器大約每三秒會呼叫每個訂閱者的 IComTrackingInfoEvents::OnNewTrackingInfo 方法,以集合物件的形式傳送最新的追蹤數據。 這個物件會實作 IComTrackingInfoCollection 介面,而訂閱者可以巡覽此集合以尋找他們感興趣的數據。

基於各種原因,程式可能會更合理地輪詢追蹤器伺服器的數據。 例如,監視工具可能需要更新的頻率遠低於在使用者介面中顯示狀態的程式。 此外,程式只能使用系統可用的追蹤數據的一小部分(例如,工具可能只監視單一 COM+ 應用程式的實例效能)。 訂閱模型會為每個訂閱者傳送每個通知中所有 COM+ 應用程式的追蹤數據,而且訂閱者有責任尋找所需的數據。 最後,COM+ 事件是最佳工作事件通知機制。 未提供可靠的訊息傳遞服務,而且訂閱者無法偵測追蹤器伺服器無法傳送通知。

需要更充分掌控其擷取追蹤數據的程式,可以使用 追蹤器伺服器的 IGetAppTrackerData 介面。