简体   繁体   English

Mirth Connect:2路ACK

[英]Mirth Connect: 2 Way ACK

I'm trying to figure out if it is somehow possible to setup Mirth to send 2 ACK back to the caller Application: A) 1 ACK sent from Mirth to the caller when the transmission has been received from Mirth; 我试图弄清楚是否可以设置Mirth将2个ACK发送回呼叫者应用程序:A)从Mirth接收到传输后,从Mirth向呼叫者发送1个ACK; B) 1 ACK sent from Mirth to the caller after the channel is finished processing the message. B)通道处理完消息后,从Mirth发送给呼叫者的1个ACK。

I know that Mirth can either be configured to send ACK before processing (case A above) or after processing (Case B above), but I could not find any way to send both. 我知道Mirth可以配置为在处理之前(上面的情况A)或在处理之后(上面的情况B)发送ACK,但是我找不到任何方式发送两者。 Has anyone had experience in doing this? 有没有人有这样做的经验? Thank you all for your help. 谢谢大家的帮助。

Mirth uses a single responseMap to store acknowledgement which is processed after all scripts. Mirth使用单个responseMap存储确认,该确认在所有脚本之后进行处理。 So, if you put anything there when a message is received, this Ack will be overridden with a new Ack placed into the same map at the end. 因此,如果在收到消息时在此处放置任何内容,则该Ack将被覆盖,最后在同一个映射中放置一个新的Ack。 And only the latter will be sent, which you've already experienced I guess. 而且只有后者会发送,我想您已经经历过了。

If I'm correct, what you are trying to achieve is, first, to confirm that the message is received by a remote location (let's call it System B) and, second, is to confirm that the message successfully processed. 如果我是正确的,那么您要实现的目标是,首先确认该消息是由远程位置(称为系统B)接收的,其次是确认该消息已成功处理。 If your client (System A) is capable to send a message to two endpoints at System B then you may create two receiving channels on the System B side, one of these channels sends ACK immediately after receiving the message and does nothing. 如果您的客户端(系统A)能够向系统B的两个端点发送消息,则可以在系统B侧创建两个接收通道,这些通道之一在接收到消息后立即发送ACK,并且不执行任何操作。 The other channel processes the message and sends ACK in postprocessor. 另一个通道处理该消息并在后处理器中发送ACK。

There are other options, say, on System B side redirect an incoming message to another channel which forms Ack and sends it back to System A, but then System A should have a listener on its side. 还有其他选择,例如,在系统B一侧将进入的消息重定向到另一个通道,该通道形成Ack并将其发送回系统A,但是系统A则应在其一侧具有侦听器。

Or, System B may have a receiving channel that sends Ack immediately, routes the message to another channel that is connected to its destinations, and remove that destination to prevent incoming message to propagate to that channel. 或者,系统B可能具有接收通道,该通道立即发送Ack,将消息路由到连接到其目的地的另一个通道,并删除该目的地,以防止传入消息传播到该通道。 The second channel processes the message and sends Ack back to the first channel. 第二个通道处理该消息,并将Ack发送回第一个通道。 First channel resends that Ack back to System A. (I have not tested such configuration, so this is just an idea to overcome a single responseMap. It may not work.) 第一个通道将Ack重新发送回系统A。(我尚未测试过这种配置,因此,这只是克服单个responseMap的一种想法。它可能不起作用。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM