When a Microsoft Transaction Server (Mtx.exe) or COM+ (Dllhost.exe) process displays high CPU utilization in Perfmon, and the CPU Usage rises to 100%, this article can help you capture a process dump and a Performance Monitor log, which you can use to compare with the process dump, to help isolate the problem. To analyze the dump, you can contact a Microsoft Support Professional or use the WinDbg tool (see the "References" section for more information).
To capture a process dump and a Performance Monitor log, follow these steps:
On the Start menu, point to Programs, point to Administrative Tools, and then click Performance Monitor.
On the toolbar, click the plus (+) button. In the Add To Chart dialog box, select the following items:
Object = Process
Counter = % Processor Time
Counter = ID Process
From the Instance list, click All processes on the system, click Add, and then click Done.
To highlight the process that is consuming the most CPU, on a computer that is running Microsoft Windows NT 4, press the BACKSPACE key once. On a Microsoft Windows 2000-based computer, click the light bulb button on the tool bar. The selected counter appears in white on the graph.
Use the arrow keys to find the process that is consuming the most CPU. Note the Process name and Process ID.
Press the DELETE key to remove other irrelevant counters from chart.
On the Perfmon toolbar, click the plus (+) button. In the Add to Chart dialog box, select the following items:
Object = Thread
Counter = % Processor Time
From the Instance list, click All the threads for the noted process instances (MTX.exe in Windows NT 4 and Dllhost.exe in Windows 2000), click Add, and then click Done.
The number after the '/' is the thread number. The number after the '#' is the process instance number (you might have more than one dllhost). The thread you're looking for should have a process number that is the same as what you found in step 5.
Use the arrow keys to find the thread that is consuming the most CPU, and note which instance it is.
On the Perfmon toolbar, click the plus (+) button. In the Add to Chart dialog box, select the following items:
Object = Thread
Counter = ID Thread
Instance = The instance of the thread noted in the previous step.
Click Add, and then click Done.
Note the last reading for the ID Thread, and exit Perfmon.
Install UserDump on the system.
At a command prompt, type the following command to change the folder to the Userdump folder:
userdump [noted process ID]
If you need to consult a Microsoft Support Professional, zip the Userdump and arrange to send it with the following information:
Windows NT service pack
Microsoft Data Access Components (MDAC) version (if any)
Microsoft Distributed Transaction Coordinator (MS DTC) version
High CPU Utilization thread ID
SQL version and service pack (if any)
Oracle version, Client version, and Net Library version (if any)
Any additional patch or hotfixes that are currently used
Symbol files for your custom or third party components (if any)