共用方式為


在 Windows 10 電腦上啟用 MS DTC 的診斷追蹤

本文討論如何在 Windows 10 計算機上啟用Microsoft分散式交易協調器 (MS DTC) 的診斷追蹤。

原始產品版本: Windows 10
原始 KB 編號: 926099

重要

本文包含如何修改「登錄檔」的相關資訊。 修改登錄之前,請務必先備份, 並了解如何在發生問題時還原登錄。 如需如何備份、還原及修改登錄的詳細資訊,請參閱 進階使用者的 Windows 登錄資訊。

追蹤設施的類型

  • 交易管理員追蹤

    交易管理員 (TM) 追蹤會追蹤交易狀態變更。 它是由 MS DTC 交易管理員所產生。 輸出格式為二進位格式,而且必須格式化輸出。 交易管理員是 MS DTC 服務的一部分。

  • 通訊管理員錯誤追蹤

    通訊管理員 (CM) 錯誤追蹤會追蹤任何載入 Msdtcprx.dll 檔案的程式,並使用 MS DTC 的遠端過程調用 (RPC) 介面與其他 MS DTC 相關進程通訊。 輸出為文字格式。 0x8004d00a錯誤是通訊管理員錯誤追蹤可能很有用的典型錯誤。

注意

交易管理員追蹤和通訊管理員錯誤追蹤是獨立的程式。 您可以獨立啟用交易管理員追蹤和通訊管理員錯誤追蹤。 或者,您可以獨立停用它們。

啟用交易管理員追蹤

您可以使用元件服務Microsoft管理主控台 (MMC) 嵌入式管理單元來啟用交易管理員追蹤。 若要這樣做,請遵循下列步驟:

  1. 依序選取 [開始]、[所有程式] 和 [附屬應用程式],然後選取 [執行]

  2. 輸入 comexp.msc,然後選取 [ 確定]。

  3. 序展開 [元件服務]、[ 計算機] 、[我的計算機]、[ 分散式交易管理員]、以滑鼠右鍵按兩下 [本機 DTC],然後選取 [屬性]。

  4. 選取 [ 追蹤] 索引標籤

  5. 在 [ 追蹤] 索引標籤上,您可以修改下列TM追蹤選項:

    • 追蹤輸出
      • 追蹤交易
        • 追蹤所有交易
        • 追蹤中止的交易
        • 追蹤長期交易

當您變更TM追蹤組態時,MS DTC服務會偵測變更。 不過,您不需要回收程式。 例如,當您變更追蹤的交易或追蹤檔案的位置時,MS DTC 服務會偵測登錄中的變更。 您不需要重新啟動 MS DTC 服務。

Windows 中的新 MS DTC 追蹤系統

在 Windows 中,MS DTC 有新的且廣泛的追蹤系統。 新的系統具有下列設計目標:

  • 只需要一行程序代碼,才能新增格式化的追蹤。
  • 追蹤可由沒有網路的生產計算機上人類讀取。
  • 輸出選項具有彈性。
  • 追蹤速度很快。
  • 您不需要重新啟動電腦即可變更選項。

此外,在 Windows 10 和 Windows Server Technical Preview 中,追蹤記錄檔名稱包含叫用追蹤記錄的程式名稱。 這是由輸出登錄機碼所控制。

設定追蹤

警告

Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft 不保證可以解決這些問題。 Modify the registry at your own risk.

追蹤組態位於本機節點上,位於 MS DTC 登錄機碼下所命名 Tracing 的登錄機碼中。 登錄 Tracing 機碼包含連接管理器追蹤。 先前,您已使用登錄 TraceCMErr 機碼來設定連接管理員追蹤。 登入 Tracing 機碼包含下列兩個子機碼:

  • Sources:這個子索引鍵會設定追蹤的種類。
  • Output:此子索引鍵會設定追蹤輸出的傳送位置。

注意

請確定進程可以存取 Tracing 登錄機碼。 根據預設,Windows 設定不會建立此金鑰,也不會授與此密鑰的許可權。 您可以使用註冊表編輯器來設定追蹤功能。

若要建立追蹤功能登錄專案,請遵循下列步驟:

  1. 選取 [啟動>所有程式>配件>執行],輸入 regedit,然後選取 [確定]。

  2. 找出並選取下列其中一個子機碼:

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output
  3. 在 [ 編輯] 功能表上,選取 [新增],然後選取專案的數據類型。 例如,選取 DWORD (32 位) 值

  4. 輸入所需來源的名稱,然後按 ENTER 鍵。 如需來源名稱的詳細資訊,請參閱設定來源一節中的數據表。

  5. 以滑鼠右鍵按下新的登錄項目,選取 [修改],在 [值數據] 方塊中輸入您想要的值,然後選取 [確定]。

  6. 選取 [檔案] 功能表上的 [結束]

設定來源

登錄 Sources 機碼包含下表所列的一組 DWORD 登錄值。

名稱 描述
TRACE_MISC 無法分類到其他類別的追蹤
TRACE_CM 連線管理員中的追蹤
TRACE_TRACE 追蹤基礎結構本身
TRACE_SVC 追蹤服務和 .exe 檔案啟動
TRACE_GATEWAY 閘道來源
TRACE_UI 追蹤使用者介面
TRACE_CONTACT 追蹤連絡人集區和連絡人
TRACE_UTIL 追蹤從多個位置呼叫的公用程式常式
TRACE_CLUSTER 追蹤叢集特定 (公用程式) 程式代碼
TRACE_RESOURCE 追蹤叢集資源特定程序代碼
TRACE_TIP 交易因特網通訊協定 (TIP) 追蹤來源
TRACE_XA XA 交易管理員 (XATM) 追蹤來源
TRACE_LOG 記錄追蹤
TRACE_MTXOCI MTS/OCI 層 (Mtxoci.dll) 追蹤來源
TRACE_ETWTRACE Windows 事件追蹤 (ETW) 追蹤來源
TRACE_PROXY MSDTC Proxy DLL 中產生的追蹤
TRACE_KTMRM 追蹤與核心交易管理員整合
TRACE_VSSBACKUP 追蹤與 Microsoft Visual SourceSafe 備份與還原機制整合
TRACE_PERFMON 支援性能計數器的追蹤

DWORD 值應該是介於 0 到 255 的數位。 DWORD 值表示發生的追蹤層級。 下表列出可能的 DWORD 值。

描述
0 const BYTE TRACE_OFF
1 const BYTE TRACE_ERROR
2 const BYTE TRACE_WARNING
3 const BYTE TRACE_INFO
4 const BYTE TRACE_VERBOSE
5 const BYTE TRACE_VERY_VERBOSE
6 const BYTE TRACE_INOUT
0xF0 const BYTE TRACE_OBSCURE
0xFF const BYTE TRACE_EVERYTHING

注意

較高的值會自動包含較低的值。 因此,當您啟用 TRACE_INFO 層級時, TRACE_ERROR 也會啟用層級。 很少的來源會使用高於 TRACE_VERBOSE 層級的任何追蹤。

設定追蹤輸出

警告

Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft 不保證可以解決這些問題。 Modify the registry at your own risk.

登錄 Output 機碼包含一組值,可控制追蹤輸出的傳送位置。 這些值如下所述:

  • TraceFilePath (REG_SZ) 值是應該儲存追蹤檔案的根資料夾。 追蹤會寫入名為 msdtc-X.log資料夾中的檔案。 在此資料夾名稱中, X 代表建立檔案之進程的十進位 PID。 請確定感興趣的所有程式都可以存取已設定的資料夾。 否則,追蹤資訊將會遺失。 如果未設定此值,就不會將追蹤傳送至檔案。

  • ImageNameInTraceFileNameEnabled (REG_DWORD) 值會判斷產生的追蹤記錄檔名稱是否包含叫用追蹤記錄之進程的映像檔名稱。 如果此值設定為非零值,進程映像檔名稱將會包含在產生的追蹤記錄檔中。 如果此值設定為零,則處理程式的映像檔名稱將不會包含在產生的追蹤記錄檔中。 根據預設,此值會設定為零 (0)。 以下是追蹤檔名的範例,其中產生的記錄檔包含進程:
    MSDTC-msdtc.exe-3552.log或MSDTC-svchost.exe - 3556.log

  • MemoryBufferSize (REG_DWORD) 值是追蹤訊息儲存所在的循環緩衝區大小。 如果此值設定為 0,則會停用記憶體追蹤。 根據預設,此值為 10 MB。 如果您啟用詳細資訊追蹤,可能必須增加此值。

  • DebugOutEnabled [REG_DWORD] 值會啟用或停用調試程序的輸出。 如果值為非零值,則會啟用輸出。 根據預設,此 Output 登錄機碼會停用。 當您變更連接管理員錯誤追蹤組態時,當載入 Msdtcprx.dll 檔案的進程回收時,變更就會生效。 例如,當 MS DTC 服務進程回收時,連接管理員錯誤追蹤組態的變更就會生效。

或者,您可以建立.reg檔案,然後使用註冊表編輯器匯入檔案。 若要這樣做,請遵循下列步驟:

  1. 建立包含下列程式代碼範例的新.reg檔案:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Output]
    "DebugOutEnabled"=dword:00000000
    "TraceFilePath"=""
    "MemoryBufferSize"=dword:0000000a
    "ImageNameInTraceFileNameEnabled"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Tracing\Sources]
    "TRACE_MISC"=dword:00000000
    "TRACE_CM"=dword:00000000
    "TRACE_TRACE"=dword:00000000
    "TRACE_SVC"=dword:00000000
    "TRACE_GATEWAY"=dword:00000000
    "TRACE_UI"=dword:00000000
    "TRACE_CONTACT"=dword:00000000
    "TRACE_UTIL"=dword:00000000
    "TRACE_CLUSTER"=dword:00000000
    "TRACE_RESOURCE"=dword:00000000
    "TRACE_TIP"=dword:00000000
    "TRACE_XA"=dword:00000000
    "TRACE_LOG"=dword:00000000
    "TRACE_MTXOCI"=dword:00000000
    "TRACE_ETWTRACE"=dword:00000000
    "TRACE_PROXY"=dword:00000000
    "TRACE_KTMRM"=dword:00000000
    "TRACE_VSSBACKUP"=dword:00000000
    
  2. 選取 [啟動>所有程式>配件>執行],輸入 regedit,然後按兩下 [確定]。

  3. 在 [ 檔案] 功能表上,選取 [ 匯入]。

  4. 找出您在步驟 1 中建立的檔案,然後選取 [ 開啟]。 [ 註冊表編輯器] 對話框隨即出現。

  5. 選取 [確定]。

  6. 選取 [檔案] 功能表上的 [結束]

效能效果

根據預設,Windows 會停用追蹤功能。 因此,一般安裝上沒有任何效能影響。

除非Microsoft客戶支援專業人員指出診斷問題所需的追蹤資訊,否則請勿在生產計算機上啟用追蹤功能。 追蹤可能會影響電腦效能。 首先,您必須找到問題,而且必須加以解決。 然後,立即停用追蹤功能。

叢集組態

針對叢集安裝,請確定所有節點上的所有登錄專案都包含這些登錄專案。 對於沒有這些登錄專案的任何節點,叢集程式代碼會忽略共用登錄中的登錄專案,因為登錄專案不存在於本機計算機登錄中。