Binding an MSMQ instance to the correct IP address

A clustered MSMQ resource fails to come online on a Windows Server 2012 system, because the default MSMQ service does not bind to the correct IP address and port.

Check whether the default MSMQ service has the correct network bindings by running the netstat command as follows:

netstat -abno | findstr 1801

If the network bindings are incorrect, the output of this command appears similar to that in the following sample:

TCP    0.0.0.0:1801    0.0.0.0:0    LISTENING    4148
TCP    [::]:1801    [::]:0    LISTENING    4148

To bind an MSMQ instance to the correct IP address

  1. Create the BindInterfaceIP registry key for the default MSMQ service by following these steps sequentially:
    • Open the registry.

    • If Directory Service Integration is enabled for MSMQ, go to HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters.

      Create a new String value named BindInterfaceIP.

      For the Value data, enter the system IP address.

    • If Directory Service Integration is not enabled, go to HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Clustered QMs\MSMQ$resourceName\Parameters.

      Replace the resourceName variable with the appropriate MSMQ resource name.

      Create a new String value named BindInterfaceIP.

      For the Value data, enter the virtual IP address.

      Note:

      If you do not specify the virtual IP address, the MSMQ service fails to come online.

    For more information, see the Microsoft Knowledge Base Article 974813.

    Note:

    For a Windows Server 2012 system, you do not need to install the hotfix mentioned in the article.

  2. Restart the default MSMQ service.
  3. Check whether the default MSMQ service binds to systemIP:1801.

    See Checking whether MSMQ is listening for messages.

  4. Bring the clustered MSMQ resource or the service group online.
  5. Check whether the clustered MSMQ service has the correct network bindings.

    See Checking whether MSMQ is listening for messages.