必须重新启动消息队列服务才能清理消息文件

重要提示 本文包含有关如何修改注册表的信息。请确保在修改注册表之前对其进行备份。如果出现问题,请确保你知道如何还原注册表。有关如何备份、还原和修改注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

Microsoft Windows 注册表描述

症状

Microsoft 消息队列消息文件累积,并且仅在启动消息队列服务时被删除。注意 Microsoft 消息队列也称为 MSMQ。

原因

消息队列服务在启动时删除可恢复和事务性消息的所有空消息文件。 可恢复和事务性消息存储文件成对出现,其格式为 Lnnnnnnn.MQ 和 Pnnnnnnnn.MQ 或 Jnnnnnnn.MQ。有关存储目录文件的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

解释 Microsoft 消息队列服务器和 Microsoft 消息队列中存储目录中的文件名称如果不重新启动消息队列服务,则磁盘存储使用率将在最后一次重新启动消息队列服务后保留在峰值要求中。

解决方案

警告 如果您使用注册表编辑器或使用其他方法错误地修改注册表,可能会出现严重问题。这些问题可能需要重新安装操作系统。Microsoft 无法保证可以解决这些问题。修改注册表的风险由您自己承担。以下修补程序安装了空消息队列消息文件的定期清理。 默认的清理间隔是6小时。 此间隔可以通过新的注册表项进行修改。 若要更改默认间隔,必须将 MessageCleanupInterval 添加到注册表。

  1. 启动注册表编辑器(REGEDT32。EXE)。

  2. 找到并选择下面的注册表子项:

    HKEY_LOCAL_MACHINE\ Software\Microsoft\MSMQ\Parameters
  3. 从 " 编辑 " 菜单中,单击 " 添加值"。

  4. 在 " 值名称" 字段中,键入 MessageCleanupInterval。

  5. 在 " 数据类型" 字段中,选择 " REG_DWORD"。

  6. 对于 "数据" 值,输入所需的时间间隔(以毫秒为单位)(例如,3600000(十进制)表示一个小时)。

  7. 退出 注册表编辑器 以保存所做的更改。

下次重新启动消息队列服务时,新的间隔将用于清理空的消息文件。

状态

Microsoft 已确认这是本文开头列出的 Microsoft 产品中的 bug。 此错误已在 Windows NT 4.0 Service Pack 4 中更正。

参考

MSMQ 管理员指南;主题:邮件送达

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×