首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >msmq\storage不断填满多播队列

msmq\storage不断填满多播队列
EN

Stack Overflow用户
提问于 2017-07-11 00:08:56
回答 1查看 179关注 0票数 0

我想创建一个简单的发布订阅设置,无论订阅者是0、1还是更多订阅者,我的发布者都会持续广播消息,订阅者在需要和阅读最新消息时来来去去。我不希望较旧的消息被订阅者读取。对于ex。如果发布者在线并开始发布,假设它发布了100条消息,而目前没有订阅者,我希望这些消息消失。如果订阅者1上线并发布了第101条消息,这将是订阅者1看到的第一条消息。这似乎是多播msmq的工作方式,但我遇到的问题是,当我的发布者正在运行时,\System32\msmq\storage将很快被4mb文件填满,它们有一些自动递增的名称,在我的例子中通常是r000001a.mq、r000001b.mq或类似的文件。我不知道如何管理这些文件是如何创建的,我的传出多播队列中没有消息,无论我是否有订阅者在监听,这些文件都会显示出来。清除这些文件的唯一方法是重新启动消息队列服务。

我用来发布这些文件的代码是

代码语言:javascript
运行
复制
using (var queue = new msmq.MessageQueue
    ("FormatName:MULTICAST=234.1.1.2:8001"))
{
    var message = new msmq.Message();
    message.BodyStream = snsData.ToJsonStream();
    message.Label = snsData.GetMessageType();
    queue.Send(message);
}

有没有什么方法可以通过编程控制这些.mq文件的创建方式?它们将迅速耗尽允许的队列存储空间。

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2017-07-11 16:19:42

R*.MQ文件用于存储快递消息。这只是为了提高效率,而不是为了恢复,因为你会发现它们在服务重启时会被清除。我会使用Performance Monitor来找出消息在哪个队列中--它们必须在某个队列中。一旦你知道了队列,你就可以反向工作了--如果它是一个自定义队列,检查一下你的代码;如果它是一个系统队列,那就很有趣了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45016867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档