MSMQ send in Windows 7 or Windows Server 2008 R2 experience delay when messages are sent to multiple destinations, some of which are unreachable.

Symptoms

Consider the following scenario:

  • You install Microsoft Windows Message Queuing (also known as MSMQ) on a computer that is running Windows 7 or Windows Server 2008 R2.

  • You send messages to message queues on many Message Queuing clients and some of the clients are not reachable either due to network issues or the machine is offline or queue not present etc.

In this scenario, Message Queuing takes a long time to finish sending the messages to the clients.

Cause

This issue occurs because Message Queuing cannot connect to all remote clients at the same time.

1.       Initially all the messages submitted for send are put in a common queue for send. Messages are picked up from this queue one by for send.

2.       When the destination for a message is tried for connection, MSMQ waits until success/failure for that connection attempt is returned. In parallel, no attempt is made for connecting other destinations piped, as messages are processed sequentially by sender from that queue. This is mainly done in order to avoid the situation when multiple parallel attempts are made to connect to same destination.

3.       If the sender machine is not able to connect to the destination machine due to any reason, failure is returned for that destination and that destination is scheduled to be retried on a timer. Only after this next message in pipe is tried.

4.       In case of connect failure, it takes around 21 seconds(TCP retry timeout) between connection attempt start and failure return.

Due to the above scenario, messages piped in the common queue lined behind messages with unreachable destinations are not able to connect and delay is seen. This is only seen on very first connection attempt. Once the first connect attempt fails for a given destination, retry for that destination is made on retry timer. On retry, multiple destinations are retried in parallel.

Resolution

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website:

http://support.microsoft.com/contactus/?ws=supportNote The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

To apply this hotfix, you must be running Windows 7 Service Pack 1 (SP1) or Windows Server 2008 R2 Service Pack 1 (SP1). Additionally, you must have Message Queuing installed.

For more information about how to obtain a Windows 7 or Windows Server 2008 R2 service pack, click the following article number to view the article in the Microsoft Knowledge Base:

976932 Information about Service Pack 1 for Windows 7 and for Windows Server 2008 R2

Registry information

To apply the hotfix in this package, you have to make changes to the following registry.

Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\DeferFirstConnectAttempt

Reg Type:DWORD

Default: 0

Description: Change this registry value to 1 in order to enable the fix which will avoid the first connection attempt where the delay happens and move directly to retry logic.

Restart requirement

You must restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace a previously released hotfix.

File information

The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.

Windows 7 and Windows Server 2008 R2 file information notes


Important Windows 7 hotfixes and Windows Server 2008 R2 hotfixes are included in the same packages. However, hotfixes on the Hotfix Request page are listed under both operating systems. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under "Windows 7/Windows Server 2008 R2" on the page. Always refer to the "Applies To" section in articles to determine the actual operating system that each hotfix applies to.

  • The files that apply to a specific product, milestone (RTM, SPn), and service branch (LDR, GDR) can be identified by examining the file version numbers as shown in the following table:

    Version

    Product

    Milestone

    Service branch

    6.1.760
    1.21xxx

    Windows 7 and Windows Server 2008 R2

    SP1

    LDR

  • The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the "Additional file information for Windows 7 and for Windows Server 2008 R2" section. MUM and MANIFEST files, and the associated security catalog (.cat) files, are critical to maintaining the state of the updated component. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.

For all supported x86-based versions of Windows 7

File name

File version

File size

Date

Time

Platform

Mqqm.dll

6.1.7601.21938

934,400

08-Mar-2012

05:30

x86

For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2

File name

File version

File size

Date

Time

Platform

Mqqm.dll

6.1.7601.21938

1,517,568

08-Mar-2012

06:16

x64

For all supported IA-64-based versions of Windows Server 2008 R2

File name

File version

File size

Date

Time

Platform

Mqqm.dll

6.1.7601.21938

3,014,656

08-Mar-2012

05:16

IA-64

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

Additional file information

Additional file information for Windows 7 and for Windows Server 2008 R2

Additional files for all supported x86-based versions of Windows 7

File name

Update.mum

File version

Not applicable

File size

1,795

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

File name

X86_fd1e1077d259d9647201d4d2f9abb24e_31bf3856ad364e35_6.1.7601.21938_none_76de177aa83d6e10.manifest

File version

Not applicable

File size

710

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

File name

X86_microsoft-windows-msmq-queuemanager-core_31bf3856ad364e35_6.1.7601.21938_none_8237515cd705f2b3.manifest

File version

Not applicable

File size

2,742

Date (UTC)

08-Mar-2012

Time (UTC)

06:20

Platform

Not applicable

Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2

File name

Amd64_15a84bd42edeb264ea86b5141837037d_31bf3856ad364e35_6.1.7601.21938_none_2ad45ee45685f58f.manifest

File version

Not applicable

File size

714

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

File name

Amd64_microsoft-windows-msmq-queuemanager-core_31bf3856ad364e35_6.1.7601.21938_none_de55ece08f6363e9.manifest

File version

Not applicable

File size

2,746

Date (UTC)

08-Mar-2012

Time (UTC)

06:52

Platform

Not applicable

File name

Update.mum

File version

Not applicable

File size

2,008

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

Additional files for all supported IA-64-based versions of Windows Server 2008 R2

File name

Ia64_bd8796e5ce0f70f3cf8602c204fe87b1_31bf3856ad364e35_6.1.7601.21938_none_3995f76da102e484.manifest

File version

Not applicable

File size

712

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

File name

Ia64_microsoft-windows-msmq-queuemanager-core_31bf3856ad364e35_6.1.7601.21938_none_8238f552d703fbaf.manifest

File version

Not applicable

File size

2,744

Date (UTC)

08-Mar-2012

Time (UTC)

06:54

Platform

Not applicable

File name

Update.mum

File version

Not applicable

File size

1,453

Date (UTC)

08-Mar-2012

Time (UTC)

12:17

Platform

Not applicable

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

×