A Tool to Monitor COM+ Component Call Time and Trigger Memory Dump in An Automation Way

 

There were multiple ways to monitor COM+ Component call time automatically, most of them require certain C++ coding efforts or rely on third party legacy Dll. Especially when we experienced intermittently slow COM+ performance issues, it is hard to trigger Memory Dump for certain COM+ component.

 

After some research, I created a tool with VS2012 to resolve this. The tool has been tested on Win2003 and Win8, it works fine.

 

By downloading and unzip the tool, you can take below ways to use it simply:

 

1. List all running Applications Components Call status:

 

MyCOMTracker –State

 

You can get statistics data under Application ID:

 

Compare to the UI in DCOMCNFG:

 

 

2. Create Memory Dump files automatically with certain numbers when Some Object has slow Call Time. To create dump, the tool uses DebugDiag 1.2 by default. DebugDiag 1.2 used here because it is compatible with Win2003 ~ Win8.

 

For example, run this command with Admin permission which can write dump to your program folder:

 

mycomtracker {22F9D67C-1B17-4BA6-A1D4-C7D98F0CA1DA} "BadObject.SlowObject.1.1" 3 5000 15000 ""

If DebugDiag is 64bit, target process is 32bit, the command will be:

mycomtracker {22F9D67C-1B17-4BA6-A1D4-C7D98F0CA1DA} "BadObject.SlowObject.1.1" 3 5000 15000 "C:\Program Files\DebugDiag\x86Support"

 

With this command, every 15 seconds, if the BadObject.SlowObject.1.1 call time is above 5 seconds, a dump will be created. Totally no more 3. The dumps will be be captured to C:\Program Files\DebugDiag\Logs\Misc

 

mycomtracker Command Switches are as below:

 

MyCOMTracker [{App GUID}] [Target Obj ProgID] [Dump Count] [Dump Trigger in ms] [Check Interval in ms] [DebugDiag Path]

 

--AppGUID can be "", meaning all apps

--Obj ProgID can be "", meaning all objs

--DebugDiag Path can be "", meaning default path

  If DebugDiag Path is "", it uses this default path "c:\program files\debugdiag"

 

To monitor all components in all Apps with 15 seconds time interval, capture no more than 10 dumps when the call time is above 15 seconds, the command can be:

 

mycomtracker "" "" 10 15000 15000 ""

 

Regards,

 

Freist Li from GBSD DSI Team

 

 

 

 

MyCOMTracker.zip