Two DLL hosts start when you create a COM+ object that has pooling enabled

Summary

When a COM+ application is configured to use application pooling, two DLL hosts start instead of one host starting.

More Information

When application pooling is enabled for a COM+ application, object creation requests are routed through the RPC service. Application pooling uses a "round robin" algorithm to send object creation requests to the DLL host processes that are started.

When you create a COM object, you primarily use the CoCreateInstance(ex) function. The second way to create COM objects is to get the class factory from the DLL, and then use the class factory object. This method is most frequently used when you create more than one COM object at a time.

CoCreateInstance counts as a single object creation request. If you use the class factory approach, this counts as two object creation requests. This is because the first creation is for the class factory object. If you have application pooling enabled, this configuration starts two Dllhost.exe processes.

Because .NET uses the class factory method to create COM objects, two DLL hosts are started on .NET clients when you create an object from the targeted COM+ application.

Status

This behavior is by design.
Properties

Article ID: 3148846 - Last Review: Apr 7, 2016 - Revision: 1

Feedback