2013-03-21 6 views
1

Мы пытаемся объединить два сервера Mirth. Один сервер (назовем его сервером 1) сохраняет все записи, а другой сервер (сервер 2) получает сообщение HL7 от первого и записывает сообщения в базу данных.Mirth Connect HTTP-прослушиватель Отображение сообщения ACK

Все было прекрасно. Но Server 1 после отправки каждого сообщения HL7 ожидает, что ACK рассмотрит эту транзакцию как завершенную и отправит другое сообщение из списка.

Статус успеха, поступающий с сервера 2 (который записывается в базу данных) содержит ответ MySQL, такой как «Успех: успех записи базы данных. Обновлено 1 строка.». Это не то, что ожидает сервер 1.

Поэтому сервер 1 считает этот ACK недопустимым, выдает сообщение об ошибке «Ошибка чтения сообщения - повторит попытку» и продолжает пытаться отправить то же сообщение снова, в результате чего сервер 2 дублирует сообщения в базе данных.

Мы используем HTTP-прослушиватель Mirth Connect, и мы не смогли найти решение для отправки ACK-msg нашему первому серверу на том же экране HTTP-прослушивателя.

Есть ли способ сделать это? Любое предложение?

Настоятельно нужна помощь.

+0

Ваше описание этой проблемы сложно прочитать. Позвольте мне понять это: у вас есть Mirth Connect на одном сервере, а MySQL - на другом сервере? Mirth Connect отправляет hl7 на сервер mysql? Вы говорите, что пытаетесь «объединить» два сервера - вы имеете в виду, что пытаетесь «интегрировать» два сервера или «объединить» два сервера в один? – csj

+0

Hi csj, Мы исправили его. Мы использовали javascript writer и карту ACK. Проблема заключалась в сообщении ACK, которое мы отправляем. Я выложу здесь полную информацию о том, что другие люди могут ее использовать – user1605661

+0

Мне было бы интересно увидеть эту деталь. Я, честно говоря, почти не знаю, какова ваша проблема или решение. – csj

ответ

0

Проблема в том, что вы не устанавливаете ответ от сервера 2 правильно, поэтому он просто возвращает то, что имеет место назначения. Вы можете создать ACK с помощью кода на трансформаторе назначения:

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

И на вашем разъема источника выберите «ackresp» в качестве ответа. Ваш сервер 1 получит этот ACK вместо журнала записи базы данных.

 Смежные вопросы

  • Нет связанных вопросов^_^