How to enable diagnostic tracing for MSDTC on a computer that is running Windows XP or Windows Server 2003

Article translations Article translations
Article ID: 899115 - View products that this article applies to.
Expand all | Collapse all

On This Page

INTRODUCTION

This article discusses how to enable diagnostic tracing for Microsoft Distributed Transaction Controller (MSDTC) on a computer that is running Microsoft Windows 2003 or Microsoft Windows XP.

There are two types of tracing facilities available:
  • Transaction manager tracing
    Transaction manager (TM) tracing tracks transaction state changes and is generated by the MSDTC transaction manager. The output is in binary format and must be formatted. The transaction manager is part of the MSDTC service process.
  • Communication manager error tracing
    Communication manager (CM) error tracing tracks any process that loads the Msdtcprx.dll file and uses the remote procedure call (RPC) interface of MSDTC to communicate with other MSDTC-related processes. The output is in text format. 0x8004d00a is a typical error for which communication manager error tracing may be useful.
Note TM tracing and CM error tracing are independent processes. You can enable or disable TM tracing and CM error tracing independently.

MORE INFORMATION

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows


Transaction Manager Tracing
You can enable Transaction Manager tracing by using the Component Services Microsoft Management Console (MMC) snap-in (Comexp.msc). Open the Component Services MMC snap-in, expand Component Services, expand Computers, expand My Computer, right-click My Computer, and then click Properties. Click the MSDTC tab. On the lower-right side of the MSDTC tab, click Tracing Options. The following options are available:
  • Off, No tracing functionality
  • Trace only aborted transactions
  • Trace only transactions open more than 1 minute
  • Trace all transactions

When you change the TM tracing configuration, the MSDTC service process detects these changes without the requirement to recycle a process. For example, when you change the transactions that are traced or the location of a trace file, the MSDTC service process detects the changes in the registry. You do not have to recycle the MSDTC service process.

MSDTC Connection Manager
NOTE: Make sure that the process has access to the registry keys. By default, our setup does not create this key, and it does not flow permissions to this key. You can use Registry Editor to configure tracing functionality. The registry values that determine tracing functionality are located in the following registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
To create tracing functionality registry entries, follow these steps:

TraceCMErr

  • Type: DWORD
  • Default value: 0
  • Function: The TraceCMErr registry entry specifies whether CM errors are to be traced.
The following table provides information about the values for the TraceCMErr registry entry.
Collapse this tableExpand this table
ValueMeaning
0Off, no tracing functionality
1CM error tracing is on, using the value of the TraceCMErrLogName registry entry as the location of the tracing output

TraceCMErrLogName

  • Type: REG_SZ
  • Default value: If this registry entry is absent when the TraceCMErr registry entry is set to a nonzero value, the TEMP directory for the user-id of the process is used. Additionally, the file name is MsDtcCMErr-<pid>.txt. The default user ID for the MSDTC service is the network service. By default, the temporary folder for the network services is hidden. Typically, the folder is located under the C:\Documents and Settings\NetworkService\Local Settings\Temp folder on most computers.

    Note In this file name, <pid> is a placeholder for the process ID.
  • Function: The TraceCMErrLogName registry entry specifies the fully qualified name of the CM error tracing log file without an extension. The .txt extension will be appended. Because multiple processes can generate the CM error tracing log file, the process ID of the process is appended to this name.

    Note The folder that is specified in the fully qualified name must exist. If the folder does not exist, tracing does not occur. The file name that is specified in the fully qualified name is not required for tracing to occur.

Performance

You should not enable tracing functionality on production systems unless a Microsoft support representative indicates that the tracing information is required to diagnose an issue. The performance of the computer may be affected. As soon as the reason for the issue has been found and resolved, you should disable tracing functionality.

By default, tracing functionality is disabled. Therefore, there is no performance effect on a regular installation.

When you change the CM error tracing configuration, the changes take effect when a process that loads the Msdtcprx.dll file is recycled. For example, the changes to the CM error tracing configuration take effect when the MSDTC service process is recycled.

When you change the TM tracing configuration, the MSDTC service process detects these changes without the requirement to recycle a process. For example, when you change the transactions that are traced or the location of a trace file, the MSDTC service process detects the changes in the registry. You do not have to recycle the MSDTC service process.

For cluster installations, make sure that all registries on all of the nodes contain these entries. For any node that does not have these entries, the cluster code will disregard the entries in the shared registry because the entries do not exist in the local computer registry.

Output examples

The tracing log files contain information about process, thread, date, and transaction identification and an explanation of the activity that is being traced.

TM tracing

The information in the TM tracing log file may be similar to the following:
pid=3132       ;tid=280        ;time=01/25/2005-17:43:20.120   ;seq=85         ;eventid=TRACE_SETTINGS                           ;;"Trace Configuration (OFF = 0 and ON = 1): Tracing Of DTC = 1, Tracing Of Transactions = 1, Tracing Of Aborted Transactions = 1, Tracing Of Long-Lived Transactions = 1, Tracing Of All Transactions = 1, Max Limit on Memory Buffers = 25."
pid=3132       ;tid=3324       ;time=01/25/2005-17:43:23.592   ;seq=86         ;eventid=TRANSACTION_BEGUN                        ;tx_guid=d3c61c1d-9528-44ff-b2f6-5acaf6b83095     ;"transaction got begun, description : '<NULL>'"
pid=3132       ;tid=2832       ;time=01/25/2005-17:44:46.945   ;seq=87         ;eventid=CHECKPOINTING_STOPPED                    ;;"MSDTC is suspending the checkpointing of transactions due to lack of activity"
pid=3132       ;tid=3324       ;time=01/25/2005-17:43:23.592   ;seq=88         ;eventid=TRANSACTION_BEGUN                        ;tx_guid=d3c61c1d-9528-44ff-b2f6-5acaf6b83095     ;"transaction got begun, description : '<NULL>'"
pid=3132       ;tid=2844       ;time=01/25/2005-17:45:23.592   ;seq=89         ;eventid=TRANSACTION_PROPOGATED_TO_CHILD_NODE     ;tx_guid=d3c61c1d-9528-44ff-b2f6-5acaf6b83095     ;"transaction propagated to 'F07M03' as transaction child node #1"
pid=3132       ;tid=2932       ;time=01/25/2005-17:45:23.608   ;seq=90         ;eventid=RECEIVED_COMMIT_REQUEST_FROM_BEGINNER    ;tx_guid=d3c61c1d-9528-44ff-b2f6-5acaf6b83095     ;"received request to commit the transaction from beginner"

CM error tracing

The information in the CM error tracing log file may be similar to the following:
08-04-2004 10:35 08:710: CM Error Value = 0x00000000, Calling RpcServerRegisterAuthInfo with Someone@somehwere.com as SPN, d:\nt\com\complus\dtc\dtc\cm\src\iomgrrpc.cpp (401) 
08-04-2004 10:35 08:710: CM Error Value = 0x000006d9, Call to RpcMgmtInqServerPrincName failed -- Could not determine if partner supports secure calls, d:\nt\com\complus\dtc\dtc\cm\src\iomgrclt.cpp (455) 
08-04-2004 10:35 08:710: CM Error Value = 0x80000171, Call to SetRpcSecurity failed, d:\nt\

Properties

Article ID: 899115 - Last Review: October 11, 2007 - Revision: 5.6
APPLIES TO
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 Service Pack 1
  • Microsoft Windows Server 2003 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Datacenter x64 Edition
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Web Edition
  • the operating system: Microsoft Windows XP
Keywords: 
kbdtc kbhowto kbinfo KB899115

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com