MSMQ - 执行操作的资源不足

时间:2014-09-29 17:48:55

标签: localhost windows-server-2008 msmq c#-2.0

我看过https://stackoverflow.com/a/1732531/684646

我有同样的问题......

考虑到我了解一些事实,我一直在寻找可能性:

  • 队列都是空的
  • msmq服务器上剩余一些GBytes可用空间
  • 这些消息在过去两年里一直很好用
  • 邮件大小固定,小于2Kb
  • 我已尝试重新启动服务并更改存储限制,但没有任何更改。

所以,

  

来自John Breakwell的博客有十一种可能性:

1。 远程读取的线程池已用完(MSMQ 2.0     只)。

队列中没有项目。 我不确定这是否足以打击这个。

2。超出了本地回调线程的数量

不明白如何检查这个。

第3。 消息量已超过系统可以处理的量(MSMQ 2.0     只要)。

没办法,它是空的。 除非这是关于Ids的溢出

4。分页池内核已耗尽。

不确定如何检查。 The document说了一些关于使用我无法找到的命令的事情。

5。 二进制文件不匹配。

该产品多年来一直没有变化。 (除非微软发送了一个自动更新,搞砸了二进制文件,这似乎不太可能)

6。 邮件大小太大。 已检查

7。已超出机器配额。

the document上谈论机器配额(a.k.a.存储限制)如果存储是这个问题(也是)它已经检查过,我在这里有点困惑。

8。打开事务外部队列时路由问题(MSMQ         仅限3.0)

本地使用Queue。有一个名为remote的本地Web服务(本地模拟),它插入队列中。

9。 缺少磁盘空间。 已检查

10。 移动设备上的存储问题 不可移动,Windows Server 2008

11。聚集太多MSMQ资源

The document说要检查注册表中的SystemViewSize。如何在注册表中查看SystemViewSize

1 个答案:

答案 0 :(得分:1)

我能够通过删除在C:\ windows \ system32 \ msmq \ storage目录中找到的所有消息文件(.mq)来解决此问题。我在开发环境中工作,所以我并不担心邮件丢失。如果你在生产环境中,这可能不是最好的主意。

希望这有助于某人。