There are several cases that got to me regarding the MSMQ “Insufficient resource” error (MQ_ERROR_INSUFFICIENT_RESOURCES). Most of them can be pinpointed by performing the following troubleshooting steps. So I think it deserves sharing with you.
1. In the event log, you are supposed to see the following related error:
Event Type: Error
Event Source: MSMQ
Event Category: Devices
Event ID: 2017
Time: 2:07:48 PM
Unable to initialize the Message Queuing service.
2. At the same time, the msmq log will have the following entry:
0x18b8> Tue Oct 04 14:07:48 2005: QM Error: main/1030, HR: 0xc000009a
0x18b8> Tue Oct 04 14:07:48 2005: QM Error: main/1090, BOOL: 0
0x18b8> Tue Oct 04 14:07:48 2005: QM Error: main/1202, BOOL: 0
0xc000009a means STATUS_INSUFFICIENT_RESOURCES.
3. If you have tmq tool, you can check the “tmq state” result:
Pools limitations (calculated approximately, in KB
Paged : limit 307,200 used for 43 %
Nonpaged : limit 262,144 used for 12 %
The current paged pool usage is 307MB*43% = 132MB. Almost 80% of the maximum paged pool usage(around 163M).
Therefore, the customer should have encountered the MSMQ paged pool issue of following KB:
810507 MSMQ: Error 0xc00e0027 When You Send or Receive a Microsoft Message
811308 MSMQ: How to Increase the Kernel Memory Threshold
1. Remove /3GB switch in boot.ini if you have.
2. Modify following registry key(if doesn’t exist, add it manually)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\PoolUsageMaximum = 60
HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\KernelMemThreshold (DWORD) = 95 (0x5F)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagedPoolSize (DWORD) = 0xFFFFFFFF
3. Restart the machine to release the paged pool.