> Hi, I developed as series of com+ components and everything was going
> well until I made the classic method call that does another method
[quoted text clipped - 5 lines]
> Is there anything wrong in calling .dispose() on a component that has
> aborted the transaction?
Yes, a transactional object is always JIT'ed.
If the object is JIT'ed, do *not* call Dispose. Dispose was already called
by the runtime and thus calling Dispose would only activate / deactivate the
object again, absolutely useless. Call Dispose if you want to deactivate an
Un-JIT'ed object.
(if yes, how do I garbage collect it???)
No need.
> Is there any rule to follow about calling .setAbort() only in the last
> component of the chain?
No.
> PS: now there's about 30minutes this happened and my components are
> still running on COM+ without any client connect to it, so, where's
> the garbage collection?
> Is there anything I'm missing?
Yes, GC takes places when there is not enough memory.
John Leyva - 11 Dec 2003 14:26 GMT
I did a test without calling Dispose in a JITA component, with transacción Support and in Pool (MinPool = 5)
The component is a package with Server Activation, a the statistics for the component are enabled.
After the test, I check the component statistics in the Service Component Console, and I notice that there were lots of objects, 0 Activated, Pooled 5, In Call 0. but the process already finished.
Is it right, this behavior?
When I call Dispose (),
the object counter for the component is 0, but I receive the error
System.Runtime.InteropServices.COMException (0x8004E003): You made a method call on a COM+ component that has a transaction that has already aborted or in the process of aborting.
Thanks in Advance