2013-03-21 78 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,而不是寫入數據庫的日誌。