Article ID: 258833
Article Last Modified on 7/13/2004
APPLIES TO
- Microsoft Transaction Services 2.0, when used with:
- Microsoft Windows NT 4.0
- Microsoft COM+ 1.0
This article was previously published under Q258833
SUMMARY
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).
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.
This will look like the following:- dllhost/0 - dllhost/0#1 - dllhost/1 - dllhost/1#1 ...
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)
REFERENCES
For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:
250509 XADM: How to Use Userdump.exe to Capture the State of the Information Store
281630 How To Configure Visual Basic DLL Project Properties to Run in IIS, MTS, or COM+
For more information about Windows Debuggers, see the following Microsoft Web site:
Keywords: kbhowto kbbug kbdebug KB258833