msmq死信队列只有1000条消息

时间:2012-10-02 18:56:11

标签: msmq

我正在为我构建的MSMQ应用程序进行一些可伸缩性测试。当发送大约200k消息并尝试在服务器上接收时,我看到一些消息即将到期(使用TimeToBeReceived = 30秒)。我在消息上使用UseDeadLetterQueue,以便可以将这些消息移动到死信队列。一切都在功能上按预期工作。但即使我看到1000条消息在接收端到期,我也只会在死信队列中看到1000条消息。

任何人都看到过这种行为,如果有,我该如何解决?

更新:我保留了2个计数器。一方面将消息输入系统(发送方),另一方面消耗来自系统的消息。如果我提供200k消息,在接收端..我只看到大约190k被消耗。因此丢失了10k消息(很可能是因为TimeToBeReceived已过期)。我希望在DeadLetterQueue中显示这些10k消息。但我只找到1k。所以,我想知道DeadLetterQueue可以容纳多少限制?

2 个答案:

答案 0 :(得分:4)

在注册表中设置的非事务性DLQ上有一个空间配额(HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSMQ \ Parameters \ MachineCache \ MachineDeadletterQuota),默认为250MB。
消息有多大?每条250kb的1,000条消息将超过默认配额。

答案 1 :(得分:1)

如果TimeToBeReceived过期,您的意思是说您的邮件应该移至deadletter queue吗?