Should the vendor flush their interface?

Clovertech Forums Read Only Archives Cloverleaf Cloverleaf Should the vendor flush their interface?

  • Creator
    Topic
  • #50151
    Chris Blair
    Participant

      Dear Techies,

      Can I get a sanity check here before bring this up with the vendor? I’ve been testing a new TCP/IP interface and it’s been very spotty. I’d send it an HL7 message and wait, and send it again and wait, and again and again. And then, all of a bunch of acknowledgements all at once.

      It turned up the noise on the engine output, and I see all of the acknowledgment messages strung together in the hex dump and then it seems that Cloverleaf is gracefully breaking up each ACK and processing them seperately.

      I’m thinking that they’re acks are building up in their outbound buffer and then when it gets full, it gets dumped to me all at once. Does that sound right to you?

      Would the alternative be to keep track of multiple outbound messages using tcl and a database and just match up each ack as it comes in. It would sure make it difficult to build in any kind of a timeout of the outbound message. Has anyone gone down that path?

      Thanks.

    Viewing 11 reply threads
    • Author
      Replies
      • #65023
        Jim Kosloskey
        Participant

          Chris,

          It would be my opinion the receiving system is not managing their buffer properly.

          That could be in the buffer they receive the messages (in other words they wait until they get a buffer full condition before processing the messages) and that introduces the possibility of seeming to get a short message.

          Or it could be as you suspect they are not sending the acknowledgment(s) until the outbound buffer is full.

          In any case, that is not the way things are desired and the receiving system should figure out where their problem is and fix it in my opinion.

          I think you are quite sane.

          email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

        • #65024
          John Hamilton
          Participant

            IF you just send one message and wait until forever, do you get the ACK ?

            Or will the remote system always wait until it has X ack to send before it sends thems.

          • #65025
            Chris Blair
            Participant

              It looks like I may be getting a short message. In the hex dump of ACKs, it looks like I’m getting about 4.5 messages, but in the next dump I don’t get the rest of the last message. I’m guessing the vendor lost it.

              Here’s another piece to the puzzle. When they send me an order, they start waiting for an ACK. The IE transmits the ACK and they’ve confirmed via a software sniffer that the message is sent back to the system. But, they’ll keep sending the same order until eventually they see their ack. They’re using Intersystems Cache’, but it’s not clear how involved with TCP buffers that software gets.

              John, I turned off the auto-resend. I’ll send one message per hour and report back when I get my response(s). It’s been 20 minutes since I sent my first one.

            • #65026
              Jim Kosloskey
              Participant

                Chris,

                I think that used to be MUMPS.

                It has been a long time since I had anything to do with MUMPS but my dim recollection is device handling was not up to snuff.

                Whatever, the other pieces of information you gave indicate to me they are not properly managing their buffers.

                They need to fix it – there is not much you can do (IMHO).

                What is the name of the vendor and the software product? Maybe others have had experience with the vendor and can assist.

                email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

              • #65027
                Michael Hertel
                Participant

                  In your dump, are the ack messages wrapped with and ?

                • #65028
                  Chris Blair
                  Participant

                    It’s a VHA package called HLO. They’re documentation says that do not support synchronous responses, but IHS tweaked the package to make it work. I think that may be the source of our problems.

                    Michael, each message does have those encapsulation characters. The only thing that I don’t see that I expected to see what a new-line character after the final segment carriage return.  I don’t think that’s an issue, but maybe their software would use that to trigger a buffer flush…?

                  • #65029
                    Michael Hertel
                    Participant

                      Could be…

                    • #65030
                      Robert Milfajt
                      Participant

                        Chris, I worked as a programmer for VHA for 10 years (many years ago) and am quite familiar with MUMPS/Cache.  If you want to send me the code off-line, I can take a peak at it and tell you where it might be going wrong.

                        With MUMPS (commands in parenthesis), you open (O) the port when you start the interface, use (U) it to write (W) and read (R) from, and close (C) it when you are stopping the interface.  The rest of the communication is handled at the OS level.  

                        What version of Cache and OS are you running?

                        Bob

                        rmilfajt@nmff.org

                        Robert Milfajt
                        Northwestern Medicine
                        Chicago, IL

                      • #65031
                        Chris Blair
                        Participant

                          Thanks Bob, I appreciate your offer. It’s actually another company that handles the MUMPS/Cache end so I’ll have to see what they want to do.

                          Did you have consistent success using MUMPS to perform synchronous replies? I’m starting to fom the impression, that’s its better to have 2 one-way pipes.

                          And to finally answer John’s question, I never get a response unless them I repeatedly send them the message.

                        • #65032
                          Jim Kosloskey
                          Participant

                            Chris,

                            I don’t think you want an asynchronous message delivery technique for acknowledgments (one thread for messages another for acknowledgments).

                            I think that is a guarantee of lost messages.

                            Doing it that way relies on the parties managing their buffers properly and as you can see the other side is having trouble doing that.

                            It appears absolute that the way they have things configured/programmed now relies on a full buffer before any processing takes place.

                            I took a quick look at the Cache Web Page and it appears synchronous message delivery should be accomplishable within the Cache product.

                            If it were me, I would set the expectations that I will send a message and wait for a reply, they will turn their port around upon receipt of one message and send a reply. Then I will send the next message and so on…

                            Anything less is a problem they need to rectify.

                            Try posting in a separate post on here with the specific vendor and product name to see if anyone in the community has experience with this vendor and product.

                            You might also ask the vendor if they have clients they know are using Cloverleaf(R) with which they are interfacing.

                            email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

                          • #65033
                            Robert Milfajt
                            Participant

                              I agree 100% with Jim.  I have seen five separate MUMPS systems and their code successfully deal with sychronous communication.  Those systems are the VA HL7 package, MIDAS, SunQuest/Misys lab, IDX and Epic.

                              Get it to work the right way and your maintenance life will be so much easier.

                              Hope this helps,

                              Robert Milfajt
                              Northwestern Medicine
                              Chicago, IL

                            • #65034
                              Chris Blair
                              Participant

                                Sorry for the delayed response, I took some vacation.

                                I appreciate all the expert advice, I will definately heed your warning.

                                Thanks again!

                            Viewing 11 reply threads
                            • The forum ‘Cloverleaf’ is closed to new topics and replies.