No announcement yet.

deferred acknowledgment

  • Filter
  • Time
  • Show
Clear All
new posts

  • deferred acknowledgment


    I would like to know if a channel can manage the "deferred acknowledgment".
    For example:
    For each Hl7 message received on inbound channel, mirth has to send back, on the same socket, a character (06), so the ancillary knows that mirth has securely stored the last message.

    I know it's a strange request.

    Do you think a right solution could be change something on mule ??

    Please let me know

  • #2
    Re:deferred acknowledgment

    This can be done using a TCP reader, in a synchronous channel.

    Of course, you can modify the LLP reader to achieve this. In this case you need to modify the mirth code (not mule code).


    • #3
      Re:deferred acknowledgment

      Mirth 1.6 allows you to access the incoming socket directly on both TCP and LLP.
      Chris Lang


      • #4
        Re:deferred acknowledgment

        Dear All,

        thank you for your quick and detail answer to my question.
        When do you plan to release the 1.6 ?

        I tried to define a simple TCP Listener, but my ancillary system waits the following deferred ACK

        0B 06 1C 0D

        and i think the TCP listenr sends just the 06

        Please, other proposal?

        Thank you so much


        • #5
          Re:deferred acknowledgment

          Dear All,

          Can you explain better how to access sockets from transformer?

          it could be the solution to my issue related to the deferred ack

          Thank you


          • #6
            Re:deferred acknowledgment

            You have an object called "receiverSocket"

            This is a standard Java socket - please see for information on using it.

            You can use any Java class from your transformer by using "Packages.<name of class>"

            For example, to use an input stream:

            var is = new;
            You can also access the objects directly from the socket:

            Chris Lang


            • #7
              Re:deferred acknowledgment

              How to use "receiverSocket"?

              I got the following error message when uisng "receiverSocket"

              ERROR-300: Transformer error
              ERROR MESSAGE: Error evaluating transformer
              com.webreach.mirth.server.MirthJavascriptTransform erException:
              CHANNEL: Lancaster
              CONNECTOR: sourceConnector
              SCRIPT SOURCE:
              LINE NUMBER: 2
              DETAILS: ReferenceError: "receiverSocket" is not defined.
              at com.webreach.mirth.server.mule.transformers.JavaSc riptTransformer.evaluateScript(JavaScriptTransform
              at com.webreach.mirth.server.mule.transformers.JavaSc riptTransformer.transform(JavaScriptTransformer.ja va:289)
              at org.mule.transformers.AbstractEventAwareTransforme r.doTransform( 8)
              at org.mule.transformers.AbstractTransformer.transfor m(
              at org.mule.transformers.AbstractTransformer.transfor m(
              at org.mule.transformers.AbstractTransformer.transfor m(
              at org.mule.impl.MuleEvent.getTransformedMessage(Mule
              at org.mule.routing.inbound.SelectiveConsumer.isMatch (
              at org.mule.routing.inbound.InboundMessageRouter.rout e(
              at org.mule.providers.AbstractMessageReceiver$Default InternalMessageListener.onMessage(AbstractMessageR
              at org.mule.providers.AbstractMessageReceiver.routeMe ssage(
              at org.mule.providers.AbstractMessageReceiver.routeMe ssage(
              at com.webreach.mirth.connectors.tcp.TcpMessageReceiv er$TcpWorker.processData( 99)
              at com.webreach.mirth.connectors.tcp.TcpMessageReceiv er$
              at .java:290)
              at eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
              at eadPoolExecutor$ :675)
              at Source)