有没有人得到任何关于处理 BizTalk 业务流程中情况的良好做法/潜在设计的指示是长期运行服务的响应失败,因此需要重新发送启动消息
我遇到的情况是,编排向 MSMQ 队列发送消息,然后在另一个队列上等待响应。现在响应时间应该不到一分钟,但队列另一端的“服务”偶尔会失败......
而且这不是我可以控制的,所以我无法更改/纠正它
我可以在 BizTalk 中使用一些设计模式来超时并重新发送启动消息吗?
有没有人得到任何关于处理 BizTalk 业务流程中情况的良好做法/潜在设计的指示是长期运行服务的响应失败,因此需要重新发送启动消息
我遇到的情况是,编排向 MSMQ 队列发送消息,然后在另一个队列上等待响应。现在响应时间应该不到一分钟,但队列另一端的“服务”偶尔会失败......
而且这不是我可以控制的,所以我无法更改/纠正它
我可以在 BizTalk 中使用一些设计模式来超时并重新发送启动消息吗?
标准 BPEL 定义了“选择”活动,而 BizTalk 具有“监听”形状,因此您基本上可以为回复队列上的接收活动定义超时期限,您可能需要一个布尔标志来决定是否回送/重试或者接收成功,因此业务流程继续进行。
定义一个可用于重试发送消息的单一编排,这些要放入队列的消息是从消息框中提取的。
如果来自响应队列的响应延迟,请使用单例循环重新发送消息。
旁注:您可能必须在发送端口上启用 Delivery Notification 属性,以侦听您可能遇到的任何异常。
参考文章...