Тайм-аут ожидания ответа на сообщение с контрольным идентификатором

Я работаю над приложением здравоохранения, используя протокол HL7. в процессе мы отправляем сообщение HL7 на localhost:50005 с использованием MLLP. Вот код, который я использовал для отправки сообщения через MLLP.

//sending message through mllp
                    PipeParser pipeParser = new PipeParser();
                    pipeParser.setValidationContext(new NoValidation());
                    System.out.println(hl7message);
                    Message message1 = pipeParser.parse(hl7message);
                    ConnectionHub connectionHub =  ConnectionHub.getInstance();
                    Connection conn = null;
                    if (conn == null) {
                        conn = connectionHub.attach(ehrHost, ehrPort, new PipeParser(), MinLowerLayerProtocol.class);
                    }
                    Message response;
                    try {
                        int timeout = 150000;
//                      System.setProperty("ca.uhn.hl7v2.app.initiator.timeout",  Integer.toString(timeout));
                        Initiator init = conn.getInitiator();
                        init.setTimeoutMillis(timeout);
                        response = init.sendAndReceive(message1);
                    } catch (Exception e) {
                        System.out.println("Didn't send out this message!");
                        e.printStackTrace();
        }

Этот код работает нормально и отправляет запрос в пользовательский интерфейс HL7 Soup, как и предполагалось, так как мы уже настроили экземпляр пользовательского интерфейса HL7 Soup, который прослушивает локальный хост через порт 50005. Мы также настроили суп HL7 для отправки ответа, как только сообщение получено. но в коде мы не можем получить ответ. мы получаем следующее исключение:

ca.uhn.hl7v2.HL7Exception: Timeout waiting for response to message with control ID 20171115-000009
 After Exceuter..................................
    at ca.uhn.hl7v2.app.Initiator.sendAndReceive(Initiator.java:152)
    at com.prnreferral.outbound.MLLPOutboundServiceMain$1.run(MLLPOutboundServiceMain.java:173)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Я провел некоторые исследования и разработки и нашел ссылку: https://sourceforge.net/p/hl7api/mailman/message/18425561/ и добавил код тайм-аута, чтобы установить время, чтобы у него было дополнительное время для ответа, но при этом та же ошибка.

У кого-нибудь есть представление об этом, заранее спасибо.

0 ответов

Другие вопросы по тегам