BizTalk Ack传播

时间:2017-03-23 20:51:10

标签: biztalk biztalk-2013

我有一个BizTalk接口接收HL7消息并将消息传递到客户端的服务器。对于这个接口,我有一个双向RP和一个请求响应SP。目前的行为是双向RP在收到消息时会产生ACK。然后,SP将消息发送到客户端,客户端将以ACK响应。当SP收到确认时,SP将消耗客户端服务器发送的ACK。我的问题是如何配置Biztalk,以便来自SP的ACK传播到RP并返回到同一RP套接字中的源?我试图避免编排,所以这必须是一个自定义管道组件吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以通过使用HL7方并将确认类型配置为“无”来实现您的方法。在确认选项卡上。这将使HL7反汇编程序在收到消息时不生成确认。在发送方面,一旦收到来自接收系统的确认,请确保您具有与原始消息上下文中相同的EpmRRCorrelationToken上下文属性。您可能需要在发送端口(接收方)上使用自定义管道组件在ACK消息上写入此上下文属性。这将允许ACK消息进入RCV端口。我以前从未这样做过,但它应该有效。

从设计角度来看,它不是一个好主意,因为消息发送系统将等待确认,直到BizTalk能够成功发送消息并从消息接收系统接收确认。您需要考虑接收系统出现问题且无法使用消息或计划停机时间的情况。大多数情况下,发送系统有超时设置确认,如果他们在该时间范围内没有得到确认,则他们会重试,这会产生重复的消息问题。

答案 1 :(得分:0)

首先,使用Orchestration没有任何问题。不要担心“表现”。

因此,正确的BizTalk方式是使用Orchestration管理与下游系统的同步。

答案 2 :(得分:0)

因此,经过多次研究和追踪和错误。事实证明,这是BizTalk 2013 R2中的本机功能。之前没有工作的原因是因为RP正在接收RP的接收管道中生成的ACK,特别是反汇编器生成的ACK。因此,当来自客户端的ACK返回时,它无处可去并在RP​​中被挂起。这可以通过创建一个Party并在确认了ack路由时将Ack Type设置为None来解决。 BTAHL7 Configuration Explorer

由于实施限制,我无法创建派对来使用上述方法。我必须为RP的接收管道编写自定义管道组件,以取消反汇编程序的ACK。这也很有效。