Creating and destroying objects is expensive. Allocations, initialization, and deallocations all take a good deal of processor time that would be much better spent servicing functional requests from clients. COM+ seeks to reduce this overhead by implementing object pooling. If an object supports pooling (we talk about the requirements shortly), it has the option not to be destroyed when it is deactivated.Deactivation, as we discussed in Chapter 8, "Transactions," occurs when Just-In-Time Activation (JITA) is enabled for that object and one of the following occur:
An object's Done bit is set to true, and a method invocation made on it returns.
The client terminates or otherwise releases the object instance.