是否有人知道是否可以在MSMQ中配置消息生存时间?这样,一旦生存时间过去,消息就会被移动到死信队列。我知道有一些默认值,但我不知道它在哪里以及如何更改它。
只是想强调一下,我知道在将消息发送到队列时如何以编程方式执行此操作。但我需要在MSMQ中更改它。对于每个队列都会很棒,但如果不可能的话,对整个MSMQ来说都很棒。
我在注册表中找到了LongLiveTime参数(HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / MSMQ / Parameters / MachineCache /),默认情况下设置为345600(秒?= 4天)。我将此值更改为30(秒)并重新启动计算机,但它无法正常工作。更重要的是,这个值自动返回到345600。
可以吗?
谢谢
答案 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 找出接收时间的剩余时间。