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

时间:2014-07-01 09:20:29

标签: msmq

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

只是想强调一下,我知道在将消息发送到队列时如何以编程方式执行此操作。但我需要在MSMQ中更改它。对于每个队列都会很棒,但如果不可能的话,对整个MSMQ来说都很棒。

我在注册表中找到了LongLiveTime参数(HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / MSMQ / Parameters / MachineCache /),默认情况下设置为345600(秒?= 4天)。我将此值更改为30(秒)并重新启动计算机,但它无法正常工作。更重要的是,这个值自动返回到345600。

可以吗?

谢谢

1 个答案:

答案 0 :(得分:0)

要为服务器设置Time-To-Reach-Queue(TTRQ),请参阅Set the default lifetime for messages

  

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

     

\ Domain Users或同等身份的会员资格是最低要求   需要完成此程序。

     

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

     

单击“开始”,指向“程序”,指向“管理工具”,然后单击“Active Directory站点和服务”。

     

在“视图”菜单上,单击“显示服务节点”。

     

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

     

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

     

单击“属性”。

     

在“常规”页面上,键入新值并根据需要选择新单位。

编辑:

设置TTBR - 接收时间的唯一方法是发送消息,因为includes the time taken for the message to reach the destination queue

  

在每一跳中,消息队列减去经过的时间   来自MaxTimeToReceive的适用计算机在发送时   消息到下一台计算机,其中设置了新的计时器。之后   如果消息到达目标队列,则可以使用MaxTimeToReceive   找出接收时间的剩余时间。