COM+ 支援在 Windows Server 中自動收集進程傾印檔案和進程終止
適用于:適用于 Windows 10 的 Windows SDK
原始 KB 編號: 910904
簡介
當 COM+ 元件發生異常高的呼叫時間時,系統會記錄事件。 事件記錄檔會識別發生問題的 COM+ 元件。 此外,事件記錄檔會提及本文 (910904) 。 系統可以設定為執行下列其中一個或兩個動作:
- 自動收集進程傾印檔案,以進行問題的根本原因分析。
- 結束此程式,以協助您從問題中復原,而不需要手動介入。
系統收集傾印檔案之後,請使用偵錯 診斷工具 (DebugDiag) 產生描述問題的報表,並提供已知的解決方案。
預設行為
請試想下列案例:
- COM+ 元件的呼叫時間超過 10 分鐘。
- 當裝載這個長時間執行之 COM+ 元件的應用程式正在執行時,您會開啟元件服務 Microsoft Management Console (MMC) 嵌入式管理單元。
在此案例中,下列事件會記錄在應用程式記錄檔中:
Event Type: information
Event Source Information: COM+
COM+ Event Category: (117)
Event ID: 782
Description: The average call duration exceeded 10 minutes.
If this is not the expected behavior, see Microsoft Knowledge Base Article 910904 in http://support.microsoft.com for detailed information about
how to use the COM+ AutoDump feature to automatically generate dump files and terminate the process if the problem recurs.
Server application ID: <YourAppID>
Server application instance ID: <YourAppInstanceID>
Server application name: <YourAppName>
設定選項
重要事項
本節包含登錄的修改。 請仔細遵循步驟。 如果您不當地修改登錄,可能會發生嚴重的問題。 備份登錄作為預防措施。 如需進一步了解如何備份及還原登錄的相關資訊,請參閱如何在 Windows 中備份及還原登錄。
偵測到長時間執行的 COM+ 元件時,系統可以設定為執行下列其中一個或兩個動作:
自動收集進程傾印檔案。
終止進程。
若要這樣做,請使用下列登錄值:
數值名稱 資料類型 描述 預設值 AverageCallThreshold
REG_DWORD
臨界值,以秒為單位,何時會採取適當的動作 0 DumpType
REG_DWORD
0 = 產生完整傾印檔案;1 = 產生迷你傾印檔案;2 = 無傾印檔案 0 Terminate
REG_DWORD
0 = 進程將會繼續;1 = 進程將會終止 0 若要全域定義電腦上所有 COM+ 元件的動作,請在下列登錄機碼下新增組態值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump
若要定義不論全域設定為何,都要針對特定 COM+ 元件採取的動作,請在下列登錄機碼下新增組態值:
HKEY_CLASSES_ROOT\AppId\{<YourAppID>}\AutoDump\{<YourCLSID>}
建議
下列內容示範如何檢查和分析完整傾印檔案。
收集完整傾印檔案
當 COM+ 元件發生異常高的呼叫時間時,收集完整傾印檔案。 例如,建立下列單一登入值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\AutoDump AverageCallThreshold = 300
如需如何為特定環境選取適當 AverageCallThreshold
登錄值的詳細資訊,請參閱考慮一節。
同樣地,當 COM+ 應用程式中發生未處理的例外狀況時,請收集完整的傾印檔案。 若要這樣做,請核取每個 COM+ 應用程式屬性中 [傾印] 索引標籤上的 [在應用程式錯誤上啟用影像傾印] 核取方塊。
分析傾印檔案
若要分析傾印檔案,請遵循下列步驟:
下載並安裝 偵錯診斷工具 (DebugDiag) 。
依照下列步驟,使用偵錯診斷工具來產生傾印檔案的分析報告:
- 從 [開始] 功能表執行 DebugDiag Analysis應用程式 。
- 選 取 [設定],然後選取 [ 喜好設定] 索引卷 標。
- 確定已核取 [符號搜尋路徑] 欄位中的[Microsoft 公用符號伺服器] 選項,然後選取 [上一步]。
- 選取 [預設分析 \ CrashHangAnalysis ] 選項。
- 選 取 [新增資料檔案]。
- 選取您要分析的傾印檔案 () 。
- 選 取 [開始分析]。
產生的 HTML 報表會顯示在桌面上新的 Microsoft Internet Explorer 視窗中,並儲存至 DebugDiag Reports 目錄。 此目錄的預設位置為 %USERPROFILE%\Documents\DebugDiag\Reports。
若要解決此問題,請遵循報表的 Recommendations 區段中 提供的指引。 報表的這個區段可能會建議下列事項:
- 它可能會引導您前往描述已知問題的 Microsoft 知識庫文章。
- 它可能會為應用程式的開發人員提供可用來進行更正的資訊。
- 建議您與適當的廠商或Microsoft 支援服務進行追蹤。 當您連絡Microsoft 支援服務以取得更多協助時,請提供報表檔案以加速分析程式。 可能也需要完整的傾印檔案。
考量
以下是您應該考慮的一些因素。
AverageCallThreshold 登錄值
300 秒的值是大部分環境的適當閾值。 理想的值取決於特定環境。 若要確保儘快採取動作,但只有在發生合法問題時,才選取只在有問題案例中超過的最小可能值。
TerminateProcess 登錄值
在發生高呼叫時間時終止進程,可協助 COM+ 元件自動從特定問題復原。 在高可用性很重要的環境中,這是理想的做法。 使用此功能時,請選取適當的 AverageCallThreshold
登錄值,以避免意外終止進程。
DumpType 登錄值
與完整傾印檔案相比,可以更快建立小型傾印檔案,並佔用較少的磁碟空間。 不過,它們對於分析問題並不太有用,因為它們經常缺少必要的資料。 Dllhost.exe進程的完整傾印檔案一般大小範圍從 10 MB (MB) 到 50 MB。 其實際大小取決於傾印進程的工作集大小。 檔案通常會在幾秒內產生。
傾印檔案選項
根據預設,傾印檔案會儲存在 %systemroot%\system32\com\dmp 目錄中。 使用 [ 影像傾印目錄] 方塊中的設定,以及適當 COM+ 應用程式的 [ 傾印影像數目上限 ] 區域底下的設定,來控制位置和傾印檔案數目。
通話時間
COM+ 元件的呼叫時間是 COM+ 元件所有實例的執行中平均值。 呼叫時間是由 COM+ 系統應用程式計算,並顯示在元件服務 MMC 嵌入式管理單元中 [狀態檢視] 的 [呼叫時間 (ms) 欄中。