tags:

views:

71

answers:

1

Questions needing answers :

  1. Does the finalizer of the client side ServicedComponent call ServicedComponent.DisposeObject or Dispose?

  2. How should destruction (release of memory) occur in the com server in relation to its usage in the client?

  3. Basically - we are reaching a 2 gig limit on process size (memory) of the COM server as memory is not being released - is the solution to call explicitly call Dispose or use the using statement in the client?

+1  A: 

You should definitely be calling either Dispose or ServicedComponent.DisposeObject on the client side. Microsoft says "It is preferable to use the Dispose design pattern rather than DisposeObject."

Exactly what is happening in COM+ will depend on a few things:

  • Is the application a Library or Server application
  • Is object pooling being used
  • Is JIT being used

If the calls are out of process then it is possible that lease times may come into play. Understanding Enterprise Services (COM+) in .NET is one of the best COM+ articles I've read but, since it was written in 2002, I wonder if it is still 100% accurate.

Tuzo