MSMQ MQ_ERROR_INSUFFICIENT_RESOURCES "Insufficient resource"

本文介绍了当使用Microsoft Message Queuing(MSMQ)时遇到“资源不足”错误的解决步骤。通过检查事件日志和MSMQ日志文件,确定问题是由MSMQ存储过载引起。并提供了调整系统设置以增加内存在MSMQ中的使用限制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

If you having been using MSMQ for several years, you should've definitely encountered "Insufficient resource"(MQ_ERROR_INSUFFICIENT_RESOURCES) issue especially when MSMQ is part of enterprise system. As MSMQ is borned to enable the applications running on separate servers/processes to communicate in a failsafe manner, the inconsistency of sending application against receiving side could make the mesages accumulate in MSMQ which in turn boom the MSMQ storage. Most of this kind of issue can be pinpointed by performing the following troubleshooting steps, so I believe the troubleshooting methodology deserves sharing with you guys.

 

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

Date: 10/4/2005

Time: 2:07:48 PM

User: N/A

Computer: SGTS01

Description:

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

<http://support.microsoft.com/?id=810507>

 

811308 MSMQ: How to Increase the Kernel Memory Threshold

<http://support.microsoft.com/?id=811308>

 

Solution:

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.

 

Best regards,

 

Yawei

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值