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

Comments (4)

  1. unrustsunshine says:

    I think it is an <a href="http://www.honkonglobal.com">effective tool</a>

  2. bassebas says:

    Hello Freist Li,

    Thanks for sharing.

    Although the zip-file seems to be corrupted.

    Can you please upload again?

    Kind regards,

    Bas

  3. Hi Bas,

    Thanks for pointing this. I reuploaded it. Now it's okay.

    Regards

    Freist LI

  4. AndreaE75 says:

    Hi, is there any hope to have the source ?

    I would just to trigger the call time and execute a simple script.

Skip to main content