FIX: COM+ Applications Consume All Available Client Ports Between 1024 and 5000 and Cause High CPU Utilization (290512)



The information in this article applies to:

  • Microsoft COM+ 1.0

This article was previously published under Q290512

SYMPTOMS

If Distributed Component Object Model (DCOM) calls are made between two COM+ server applications on two different computers under heavy load, the COM+ applications may consume all available client ports between 1024 and 5000 and cause high CPU utilization. The COM+ server applications may be configured as two separate server applications, or a COM+ server application may have been exported to a remote server as a COM+ application proxy.

In addition, if the COM objects that make the DCOM calls are written in Microsoft Visual Basic, the following error may appear in the event log:
Error: 462
The remote server machine does not exist or is unavailable.
The following message may also appear in the event log:
DCOM was unable to communicate with the computer <COMPUTERNAME> using any of the configured protocols
If you shut down the COM+ server applications and restart them, you can free up client ports to provide relief; however, the problem recurs over time.

RESOLUTION

To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack


This fix allows Remote Procedure Call (RPC) to clean up idle bindings earlier.

In addition to installing the latest service pack or COM+ rollup, you may need to increase the available ephemeral ports on each server. For additional information, click the article number below to view the article in the Microsoft Knowledge Base:

196271 Unable to Connect from TCP Ports Above 5000

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 2.

MORE INFORMATION

When you view the CPU time of the individual threads inside the COM+ package (Dllhost.exe), the function calls in RPCSS.dll consume most of the CPU time. If you use Netstat (at a command prompt, type netstat /?) to examine the connections between the two servers, the output may show that all of the ephemeral ports on the DCOM client have been used (all ports between 1024 and 5000) and are in the "ESTABLISHED" state. For example:

TCP    10.202.250.46:1025     10.202.102.122:135     ESTABLISHED
TCP    10.202.250.46:1026     10.202.102.122:135     ESTABLISHED
............
until 
............
TCP    10.202.250.46:4997     10.202.102.122:135     ESTABLISHED
TCP    10.202.250.46:4998     10.202.102.122:135     ESTABLISHED
TCP    10.202.250.46:4999     10.202.102.122:135     ESTABLISHED
TCP    10.202.250.46:5000     10.202.102.122:135     ESTABLISHED
					


Modification Type:MajorLast Reviewed:5/8/2002
Keywords:kbbug kbDSupport kberrmsg kbWin2000PreSP2Fix kbWin2000SP2Fix KB290512