2013-03-21 49 views
1

我们正在尝试合并两个Mirth服务器。一台服务器(我们称之为服务器1)保留所有记录,另一台服务器(服务器2)从第一台服务器获取HL7消息并将消息写入数据库。欢乐连接HTTP侦听器映射响应ACK消息

到目前为止,一切都很完美。但服务器1在发送每条HL7消息之后,等待ACK将该事务视为已完成,并从列表中发送另一条消息。

来自服务器2(写入数据库)的成功状态包含MySQL响应,例如“成功:数据库写入成功,更新了1行,”。这不是Server 1期望的。

因此,服务器1将此ACK视为无效,产生错误“消息读取错误 - 将重试”并一直尝试再次发送相同的消息,导致服务器2复制数据库中的消息。

我们使用的是Mirth Connect HTTP侦听器,我们无法找到任何解决方案将ACK msg发送到我们的第一台服务器上的同一屏幕HTTP侦听器。

有没有办法做到这一点?任何建议?

真的需要帮助。

+0

你对这个问题的描述很难阅读。让我直截了当地说:你在一台服务器上有Mirth Connect,而在另一台服务器上有MySQL?欢乐连接发送hl7到MySQL服务器?你说你试图“合并”两台服务器 - 你的意思是说你试图“集成”两台服务器或将两台服务器“合并”为一台? – csj 2013-03-22 19:58:30

+0

嗨csj, 我们修好了。我们使用JavaScript编写器和ACK映射。问题是我们发送的ACK消息。 我会在这里发布完整的细节,其他人可以使用它 – user1605661 2013-03-23 22:35:11

+0

我会有兴趣看到完整的细节。我真的几乎不知道你的问题或解决方案。 – csj 2013-04-02 22:01:19

回答

0

问题是你没有正确设置来自服务器2的响应,所以它只是返回目的地。您可以通过目标变压器上的代码创建一个ACK:

var ackMessage = ACKGenerator.generateAckResponse(connectorMessage.getRawData(), "AA", "Message Successfully Received"); 
responseMap.put("ackresp", ResponseFactory.getSentResponse(ackMessage)); 

并在您的源连接器上选择“ackresp”作为响应。您的服务器1将收到该ACK,而不是写入数据库的日志。