gpt4 book ai didi

biztalk - 在 BizTalk MSMQ 适配器中使用 FullReceive 确认类型

转载 作者:行者123 更新时间:2023-12-02 03:34:35 27 4
gpt4 key购买 nike

我正在通过 MSMQ 适配器从 BizTalk 向 MSMQ 队列发送消息。

我需要对消息的完全接收进行确认(来自队列中的接收者)。无论我在 MSMQ 传输属性中发送何种确认类型,它都对我不起作用。

我知道 Full Receive ack 取决于消息的 TTL(生存时间)。但这不能在 MSMQ 传输属性中设置。只有超时,但它只对到达队列有效(这里是 MSDN 关于超时的说法:“指定等待消息到达目标队列的最长时间。仅在使用事务时适用。”)。我将此超时属性设置为 10 秒。

如果我将 Ack Type 设置为 FullReceive,我只会在从队列中选取消息时收到确认。但我从来没有吃过亏(显然是因为没有达到 TTL)。我认为默认的 TTL 是 4 小时。我还使用了其他 Ack 类型,如 NegativeReceive 等。但如果消息未从队列中选取,则没有任何 NACK 给我。

我实际上可以通过 WCF-NetMSMQ 适配器实现它,您可以在其中发送 TTL 值,如果它过去了,将获得 NACK。

有谁知道如何通过 MSMQ 适配器使 FullReceive 工作并在 10 秒内未从队列中收到消息时接收 NACK?

最佳答案

您可以设置任何您喜欢的属性,这些属性在 MSMQT Adapter 上可用。 ,其中一些无法通过 BizTalk 管理中的适配器配置获得。为此,您需要创建一个 ccustom 管道组件,然后在 AddDocument() IAssemblerComponent 实现中,您可以直接提升正确的属性:

// Promote msmq response queue property
private void PromoteProperty(MessageContextPropertyBase property, IBaseMessageContext context, object val)
{
context.Promote(property.Name.Name, property.Name.Namespace, val);
}

this.PromoteProperty(new MSMQT.AnyProperty, message.Context, "Value");

关于biztalk - 在 BizTalk MSMQ 适配器中使用 FullReceive 确认类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com