So there I was, programming away, when after only 300,000 messages (combined) in my queues, I got the dread “Insufficient resources…” message in my logs! This is an 8-Core, 4.3GHz, 32GB RAM box… CPU sits at 41°F to to 43°F and never breaks a sweat.. ever.
It didn’t take much looking to find that although you can configure no limits on each individual queue, Microsoft still imposes a total size limit on all queues on the box by default. “Whuh?” I know, right?!
Just right click on the Message Queuing icon/branch of the tree as below, and select Properties:
Sure enough, there it is! Now I don’t care about the journal storage, as I’m not journaling. But the Limit message storage to (KB): is a limit on all queues combined even if you have unlimited selected for each and every queue!
So I unchecked them both (I have 3TB available in RAID1, so go for it!):
So this cleaned things up IMMEDIATELY. Just to make sure, I clicked on the Storage tab, and went to the storage location to see how much stuff was in there:
Well, what do you know! Now please note that my messages here are instances of a syslog message class that just as a single syslog message per instance. ~300,000 of these messages in the queue on disk taking up 1GB means that each one-although small-with XML overhead is taking up about 3.5KB each.
So when planning, remember it isn’t the actual size of the instance that will take up space, but all the metadata and XML overhead will add up to a LOT more than the size of your actual message.