Article ID: 294710 - Last Review: October 23, 2003 - Revision: 2.2 BUG: Memory Leak in Client Process When You Use UDP for DCOM ProtocolThis article was previously published under Q294710 SYMPTOMS
If a Distributed Component Object Model (DCOM) client process that uses User Datagram Protocol (UDP) creates a large number of COM objects on the remote computer or makes a lot of calls to methods that return interface pointers as parameters, you may see a consistent increase in the private bytes of this DCOM client process. When interface pointers are marshaled, the object identifier (OID) and interface pointer identifier (IPID) are cached by the client process. When there are many activations and method calls, this cache continues to grow when you use the UDP DCOM protocol. If the DCOM server does not return a new interface to its clients every time (which occurs with a singleton, an object pooling, or an object reuse scenario), this problem may not occur because the OID and IPIDs are reused. RESOLUTION
To work around this problem, use TCP/IP instead of UDP for the DCOM protocol. To add Connection-oriented TCP/IP to the list of default protocols, follow these steps:
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. MORE INFORMATION
The following scenario is one scenario that may reproduce the problem. A DCOM client process that uses UDP creates a COM object on a remote computer, calls a simple method on it, and releases the proxy. This call sequence is wrapped in a loop that is similar to the following code:
| Article Translations
|
Back to the top
