PREAMBLE
For MSMQ installations which do not have regular monitoring in place. there comes a time when an application using MSMQ gives an exception “Insufficient Resources to Perform Operation”. This happens if MSMQ runs out of allocated memory due to too many entries in its queue. By default MSMQ allocates a max of 2 gb of memory. If it is enabled with 3GB switch in the boot.ini file, then it will max out at 3 gb . Either ways, if data in MSMQ exceeds the set limit then this error message shows up. There are a few suggested solutions for this error which are the “recommended” way of stopping MSMQ and reclaiming space . More information about official methods can be found here.
However it often happens that even after following all the recommended workarounds, your MSMQ just refuses to work. The method suggested in this article is the last resort, short of reinstalling MSMQ again. A big warning here is that following this method will clear all existing data in the queues, so do not expect MSMQ to start and you find all your data intact.
THE METHOD
There are only two steps to this method.
- Delete all files in the MSMQ storage folder
- Reset the MSMQ logs attribute in the Windows registry
First stop the MSMQ service by going into the Services applet and stopping
MSMQ stores all its data in the <Windows>\<system32>\msmq\storage folder. Eg. C:\Windows\System32\msmq\storage .
Go into that folder and delete all the files in it. If there is an lqs subfolder, leave that intact.
Open Windows Registry by going to Start and typing “REGEDIT” and press Enter.
Navigate to the key: HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters
On the right pane , look for the LogDataCreated attribute. Double click on it to change it to 0.
Close Regedit.
Restart MSMQ.
Thank you, this worked like a charm and unstuck me on a weekend when no one on my team was available!