FIX: Windows 2000 Application Delay Occurs in Response to the Message Queuing Send Function (280087)



The information in this article applies to:

  • Microsoft Message Queuing 2.0

This article was previously published under Q280087

SYMPTOMS

When you send messages to a remote computer and the network connection is lost, the application may have a 12 to 17 second delay in response to the Message Queuing send function.

CAUSE

Every five seconds, the MSMQ Queue Manager tries to reconnect to target computers that don't have a working TCP/IP session. If the target computer is unavailable, this connection attempt can be blocked. MSMQ uses a limited number of working threads to handle these network connections and local applications. There is no limit to the number of working threads to retry these connection attempts. This can lead to all worker threads being tied up in connection attempts, and there may be more than one worker thread attempting to connect to the same target computer.

On a computer running Microsoft Windows 2000 Professional, the number of worker threads is smaller than on a computer running Windows 2000 Server. The more limited thread pool on Windows 2000 Professional exposes the problem of exhausting the worker thread pool more quickly and more often.

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

The English version of this fix should have the following file attributes or later:
   Date        Time   Version    Size       File name     
   -------------------------------------------------------
   02/28/2001  17:54  5.0.0.720  273kb  Mq1repl.dll
   02/28/2001  17:47  5.0.0.720   14kb  Mq1sync.dll
   02/28/2001  17:47  5.0.0.733   70kb  Mqac.sys
   02/28/2001  17:54  5.0.0.721  210kb  Mqads.dll
   02/28/2001  17:47  5.0.0.720   22kb  Mqbkup.exe
   02/28/2001  17:54  5.0.0.720   29kb  Mqcertui.dll
   02/28/2001  17:54  5.0.0.720   49kb  Mqclus.dll
   02/28/2001  17:54  5.0.0.720   30kb  Mqdbodbc.dll
   02/28/2001  17:54  5.0.0.720   74kb  Mqdscli.dll
   02/28/2001  17:54  5.0.0.720   41kb  Mqdssrv.dll
   02/28/2001  17:47  5.0.0.720   96kb  Mqmig.exe
   02/28/2001  17:54  5.0.0.720  258kb  Mqmigrat.dll
   02/28/2001  17:54  5.0.0.720  219kb  Mqoa.dll
   02/28/2001  17:54  5.0.0.720    8kb  Mqperf.dll
   02/28/2001  17:54  5.0.0.733  406kb  Mqqm.dll
   02/28/2001  17:54  5.0.0.720    9kb  Mqrperf.dll
   02/28/2001  17:54  5.0.0.733   90kb  Mqrt.dll
   02/28/2001  17:54  5.0.0.720   69kb  Mqsec.dll
   02/28/2001  17:54  5.0.0.720  391kb  Mqsnap.dll
   02/28/2001  17:48  5.0.0.720   14kb  Mqsvc.exe
   02/28/2001  17:54  5.0.0.720   24kb  Mqupgrd.dll
   02/28/2001  17:54  5.0.0.720  106kb  Mqutil.dll
   02/28/2001  17:54  5.0.0.720   64kb  Msmq.cpl
   02/28/2001  17:54  5.0.0.720  156kb  Msmqocm.dll
   

				

STATUS

Microsoft has confirmed that this is a problem in MSMQ, version 2.0. This problem was first corrected in Windows 2000 Service Pack 3.

MORE INFORMATION

This fix corrects the problem by limiting only one thread (at most) to try to connect to same target at the same time. In addition, it reserves one thread for servicing requests that are needed for local applications.

One possible workaround is to increase this thread pool by increasing the QMThreadNo registry value. This registry value is documented in the Registry Reference help file in the Windows 2000 Resource Kit.

Modification Type:MinorLast Reviewed:9/26/2005
Keywords:kbHotfixServer kbQFE kbbug kbfix kbWin2000sp3fix KB280087