【问题标题】:Why is the storage for MSMQ full when the queues themselves are empty?当队列本身为空时,为什么 MSMQ 的存储空间已满?
【发布时间】:2010-09-20 12:59:48
【问题描述】:

我的一个 QA 服务器有一段时间没有给我任何问题,它开始给我的应用程序错误,因为它们无法写入队列。 MSMQ特地抛出了一条消息,说“资源不足,无法执行操作”。

对队列本身的检查表明它们是空的,每条消息为零。

检查限制表明我们将它们限制为每个 1GB 的存储空间。

检查存储所在的目录表明是的,那里有 1GB 的文件,因此没有更多资源是有道理的。

但是,队列本身是空的。为什么它不清除旧文件?我在这里缺少什么设置?我认为他们会在重新启动时清空自己,但这也没有解决问题。

【问题讨论】:

    标签: windows windows-server-2003 msmq


    【解决方案1】:

    您的队列是否启用了日志?如果是,您还限制它们的大小?它位于队列的“常规”选项卡的底部。这些不会在重新启动时被删除。如果您有大量队列,则日志的默认 1 mb 限制可能会吸引您。

    【讨论】:

    • 就是这样 - 自从我发布此消息以来,我们发现另一位同事打开它来测试某些东西,而他完成后没有关闭它。谢谢。
    • 如果您经常使用队列,那么拥有一个简单的控制台实用程序可以很方便地使用您需要的设置重建所有队列。在源代码中包含这些有助于避免这些事情,并可以轻松地在您的开发机器上进行设置(使用 System.Messaging;)
    猜你喜欢
    • 2013-10-05
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多