We have compiled MSMQ for the NServiceBus service suite, and everything works fine until this happens. Outgoing queues on one server begin to fill up, and pretty soon the whole system hangs.
More details:
We have a clustered MSMQ between servers N1 and N2. Other cluster resources are only services that work directly in cluster queues as local ones, that is, NServiceBus distributors.
All workflows live on separate servers, Services3 and Services4.
For those unfamiliar with NServiceBus, work shifts to a clustered work queue managed by a distributor. Work applications on Service3 and Services4 send "I'm ready to work" messages to the cluster management queue managed by the same distributor, and the distributor responds by sending the unit of work to the workflow input queue.
At some point, this process can completely hang. Below is an image of outgoing queues in a cluster instance of MSMQ when the system hangs:

If I move through the cluster to another node, it, like the whole system, gets hit in the pants. The following is an image of the same cluster instance of MSMQ shortly after failure:

Can someone explain this behavior and what can I do to avoid it so that the system runs smoothly?
cluster-computing message-queue msmq msdtc nservicebus
David boike
source share