【问题标题】:How to configure message Time-To-Live in MSMQ?如何在 MSMQ 中配置消息生存时间?
【发布时间】:2014-08-21 19:12:39
【问题描述】:

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

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

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

可以吗?

谢谢

【问题讨论】:

    标签: msmq


    【解决方案1】:

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

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

    \Domain Users 中的成员身份或同等身份是最低要求 需要完成此过程。

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

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

    在“查看”菜单上,单击“显示服务节点”。

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

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

    单击属性。

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

    编辑:

    设置 TTBR - Time-To-Be-Received - 的唯一方法是在发送消息时,因为它includes the time taken for the message to reach the destination queue

    在每个跃点中,消息队列都会减去经过的时间 适用计算机从 MaxTimeToReceive 调度时 消息到下一台计算机,在那里设置了一个新的计时器。之后 消息到达目的队列,可以使用 MaxTimeToReceive 找出待接收计时器中剩余的时间。

    【讨论】:

    • 感谢您的回答。但这不是我需要的。我需要设置消息在目标队列中的超时时间,这样如果消息在这段时间内没有被收件人接收,它就会被移动到死信队列。
    猜你喜欢
    • 1970-01-01
    • 2015-04-08
    • 2016-01-21
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多