【发布时间】:2012-03-27 20:12:54
【问题描述】:
我有一个使用 MSMQ 和 NServiceBus 进行消息传递的客户端-服务器应用程序。在最近的一些测试中,客户端在一段时间内处于非活动状态,并且发现了 MSMQ 的意外行为:
- MSMQ 具有用于处理队列的默认线程数
(在注册表中设置为 QMThreadNo)。当队列处于休眠状态时
状态很长一段时间,它们积累了大量
的消息。这些大队列保留了有限数量的
MSMQ 拥有的线程比平时更长,因此确实需要
更长的时间来处理实际处于活动状态的队列。
- 可以将注册表项设置为更高的线程数。
- 客户端在一段时间内未发送/接收消息
时间(在注册表中设置为 CleanupInterval)将更改为
“非活动”状态,最终他们的队列将被删除,直到
消息从该客户端发送,强制重新创建
排队。
- CleanupInterval 可以从默认的 5 分钟更改为更长的时间。
以前有人遇到过这些问题吗?如果有,有哪些可能的解决方案?
【问题讨论】:
标签: .net client-server msmq nservicebus