【发布时间】:2014-11-24 04:41:15
【问题描述】:
我读过https://stackoverflow.com/a/1732531/684646
我也有同样的问题...
考虑到我知道一些事实,我一直在寻找可能性:
- 队列都是空的
- msmq 服务器上还有一些 GBytes 的可用空间
- 过去两年消息一直运行良好
- 消息大小固定,小于 2Kb
- 我已经尝试重新启动服务并更改存储限制,但没有任何更改。
所以,
来自 John Breakwell 的博客有十一种可能性:
1. 用于远程读取的线程池已用尽(MSMQ 2.0
仅)。
队列中没有项目。 我不确定这是否足以打击这个。
2。超出本地回调线程数
不明白如何检查。
3. 消息量已超出系统所能处理(MSMQ 2.0
只要)。
没办法,它是空的。 除非这是在谈论 Id 溢出
4.分页池内核内存已用完。
不知道如何检查。 The document 说了一些我找不到的命令。
5. 不匹配的二进制文件。
该产品多年来一直没有改变。 (除非微软发送了一个自动更新来搞砸二进制文件,这似乎不太可能)
6. 邮件过大。 已检查
7.已超出机器配额。
在the document 上谈论机器配额(又名存储限制)如果存储也是这个问题,它已经检查过了,我在这里有点困惑。
8.打开事务性外部队列时的路由问题 (MSMQ 仅限 3.0)
队列的使用是本地的。有一个远程调用的本地 Web 服务(在本地模拟),它插入到队列中。
9. 磁盘空间不足。 已检查
10. 移动设备上的存储问题非移动设备,Windows Server 2008
11.集群的 MSMQ 资源过多
The document 说要检查注册表上的SystemViewSize。如何在注册表中查看SystemViewSize?
【问题讨论】:
-
@john-breakwell 你能给我一点帮助吗? =)
-
windows\system32\msmq\storage 文件夹中的文件占用了多少空间?
-
一些 kbs,但我会重新检查。重启后问题就消失了。 Windows Server 2K8
-
很可能其他应用程序用尽了所有内核内存(列表中的第 4 项),因此 MSMQ 无法为自己分配任何内存。您写道您无法检查此步骤。出了什么问题?
-
我的文章说“TMQ 可从知识库文章 887220“Microsoft 消息队列的 TMQTools 实用程序描述”中获得”。 KB 显示“有关如何下载 TMQTools 实用程序的更多信息,请访问以下 Microsoft 网站:microsoft.com/downloads/…”
标签: localhost windows-server-2008 msmq c#-2.0