如何配置MSMQ中的消息生存时间



有人知道是否可以在MSMQ中配置消息生存时间吗?这样,一旦过了生存时间,消息就会被移动到死信队列中。我知道有一些默认值,但我不知道它在哪里,也不知道如何修改它。

只是想强调我知道如何在发送消息到队列时以编程方式做到这一点。但我需要在MSMQ中更改它。对每个队列都很好,但如果不可能,对整个MSMQ都很好。

我发现LongLiveTime参数在注册表(HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSMQ/Parameters/MachineCache/),这是默认设置为345600(秒?= 4天)。我将此值更改为30(秒)并重新启动机器,但它不起作用。不仅如此,该值还会自动返回到345600。

可以做到吗?

谢谢

要设置到达队列时间(TTRQ),请参见设置消息的默认生存期:

您可以使用此过程来设置Message的默认生存期队列消息。消息队列消息的生存期指定消息到达目标队列的最大时间间隔。如果在消息到达之前超过了此时间间隔目标队列,然后将消息放入死信队列中如果消息的PROPID_M_JOURNAL属性被设置为MQMSG_DEADLETTER .

在域用户中的成员资格,或同等的,是最低的需要完成此程序。

设置消息队列消息的默认生存期:

单击开始,指向程序,指向管理工具,然后单击活动目录站点和服务。

在"视图"菜单中,单击"显示服务节点"。

在控制台树中右键单击"MsmqServices"。

在哪里?- Active Directory站点和服务/Services/MsmqServices

单击"属性"。

在"常规"页中,键入一个新值并根据需要选择新的单位。

编辑:

设置TTBR(待接收时间)的唯一方法是在发送消息时,因为它包括消息到达目标队列所花费的时间:

在每一跳中,消息队列减去在该跳上经过的时间从MaxTimeToReceive中获取适用的计算机消息发送到下一台计算机,在那里设置了一个新的计时器。后消息到达目标队列时,可以使用MaxTimeToReceive查看待接收时间定时器还剩多少时间。

最新更新