QueueProxy on MSMQ cluster

Managing clustered MSMQ was always tricky, since it runs as a separate instance, i.e. more or less like a separate “virtual” computer with MSMQ installed. When you try to manage it from QueueExplorer you’ll see that there are some limitations since it’s done in remote mode, either from one of cluster nodes or from some other machine. You can’t create or modify queues, you can’t find out queue’s transactional status, etc.

QueueProxy allows you to bypass these limitations. It’s a small app which can be installed as a generic cluster application, and since it runs as a part of a cluster, it can connect to clustered MSMQ locally. QueueExplorer then talks with QueueProxy and not with remote MSMQ, eliminating all these problems.

How to run QueueProxy on a cluster?

Here are step by step instructions:

  • Download QueueProxy
  • Unzip it on both cluster nodes, and put in same folders.
  • Open “Failover Cluster Manager”
  • Locate MSMQ role you created before. While it’s selected, pick “Add resource” and select “Generic Application”.
  • Type path to QueueProxy.exe. It should be on the same path on both cluster nodes! Finish wizard.
  • Before bringing “QueueProxy Application” resource online, open its Properties.
  • Go to Dependencies tab, and add MSMQ resource. Click apply but don’t close the tab. If it’s not applied next step won’t work.
  • Go to General tab and check “Use Network Name for computer name”.
  • Now close properties and you can bring “QueueProxy Application” online.

If everything is ok, once you connect to clustered MSMQ from QueueExplorer – you should see that queues have correct transactional/non transactional status, and you’ll be able to create new queues and edit their properties, same as for local MSMQ.