We recently had an issue where MSMQ (on Windows Server 2008 R2 in a workgroup) stopped sending messages. It turned out that it was because MSMQ had reached the message storage limit and was therefore responding to everything with the dreaded 'insufficient resources' error.
Fair enough so far, but here's the thing: As far as we could tell, the messages that were using up all the disc space were all destined for a queue on another machine (we're guessing that the other machine had temporarily stopped accepting messages for reasons that we haven't yet figured out, causing everything on the sending MSMQ to back up). So processing those messages should actually free up disc space. Indeed what we found was that as soon as we removed the message storage limit on the sending machine, the messages started being sent. And at some point later on (we didn't see when, but this thread MSMQ continues to grow even when there are no messages are in the queue indicates it would have been 6 hours later), all the p*****.mq messages that were occupying the disc space were cleaned up, allowing us to reinstate the storage limit.
It makes no sense to us that MSMQ would refuse to send those messages on account of storage limit exceeded, when sending the messages would have freed up storage. But all the evidence we have is that this is what happened. Can anyone confirm whether this is in fact how MSMQ behaves?