Partial Instrumentation in COM+

Hi,

I have a Windows service that is monitoring a queue from MQSeries. When a message arrives, a .NET transaction is created in order to get(consume) the message in a transactional way.

Then the service is calling a COM+ component that joins the transaction and runs the business logic on it.

When I try to instrument this (at COM+ level), even if I have many messages in the queues and many calls are done to COM+, but "performance Profiler" is only instrumenting the first call to COM+.

Do I do something wrong ?

Christophe S.

Comments

  • Unfortunately, I don't fully understand what you mean. A screen shot of:

    ANTS showing the call tree +
    ANTS showing the method grid results

    will be very helpful.

    Thanks!
  • The architecture is as follows:

    Client -> COM+ Package

    In my scenario the client will do 1 call to COM+.

    Internally inside COM+, the called component will make many calls (37) to a main business component. During my instrumentation, only 1 or 2 calls (even 0 sometimes) are captured.

    Extra info:
    - Type of instrumentation: Method-level timings; all methods (faster)
    - My client is a Windows service
    - Code is release version
    - No PDB files deployed
    - I have often "Interop.SEHException" logged by the profiler at the beginning of the execution (but don't know what this means)
  • Sounds like frustratingly, 'one-of-those-things'. i.e. instrumenting code can interfere with the usual operation (it can reveal otherwise-hidden race-conditions, change thread-scheduling order, change permissions and lead to accessviolations etc).

    Does running in sampling mode give you more 9if less detailed) information?

    You may find running the profiler *explicitly* as administrator helps. Otherwise, if you wanted we would analyse a memory dump and try to understand the part ANTS is playing in any exceptions...
Sign In or Register to comment.