5.8 mlp

  • Creator
    Topic
  • #51935
    Michael Hertel
    Participant

    Does anyone know if you still need to use pdls for tcp-mlp or is this now naitive to the engine?

Viewing 19 reply threads
  • Author
    Replies
    • #72364
      James Cobane
      Participant

      Mike,

      From the 5.8 Release notes:

      TCP/IP MLP Support

      – A new

    • #72365
      Michael Hertel
      Participant

      Thanks Jim,  💡

      Call me old fashioned, but it sure would be nice to go back to the old manuals. There is so much new and exciting stuff in 5.8, I feel like I’m on an Easter Egg hunt.

    • #72366
      Kevan Riley
      Participant

      This begs the question… Is it preferable to use the “Encoding” setting on TCP/IP or use the TCP/IP PDL and the MLLP.pdl?

    • #72367
      Mark Thompson
      Participant

      James,

      Do you know what happens when data arrives that does not conform to the desired “encapsulation” — does it appear in the process log, or is it simply discarded?

      - Mark Thompson
      HealthPartners

    • #72368
      James Cobane
      Participant

      Mark,

      That’s a good question.  I haven’t utilized (or experimented) with the new “encapsulation” option, so I can’t address how it handles incorrectly encapsulated messages.  If I get an opportunity, I might give it a shot.

      Jim Cobane

      Henry Ford Health

    • #72369

      From Bill Evans deep down in the Cloverleaf development dungeons …

      Quote:

      “Do you know what happens when data arrives that does not conform to the desired “encapsulation” — does it appear in the process log, or is it simply discarded?” It works like the PDL version and will dump all that is skipped if the EO is set to do so. There is a timeout that controls what happens after the start block appears but no end block shows up. The user may select what happens in this case. If no start block things go in the trash but may be written into the log with the right EO setting.

      Why use the Tcp version instead of the PDL version? The Tcp driver in 5.8 is sub-threaded so it can receive messages while your Tps is waiting for that database to respond. Also the “scanner” (thing that looks for start/end) is twice as fast as the PDL version — few 100 microseconds but every one of them counts.)

      Attend the talk “5.8 Nitty Gritty” at the user meeting for information on 5.8 changes. If your question is not answered it will be with maybe more details than you ever wanted. Answer can take minutes or days to appear but it shall appear — so says the speaker.

      **Bill

      -- Max Drown (Infor)

    • #72370
      Michael Hertel
      Participant

      I sent the following query to Techsupport:

      Quote:

      5.8 MLLP/MLLP2 question

      We are excited about using tcpip protocol without pdl.

      The documentation does not explain the differences between these options very clearly.

      Home : Configuration : Protocols : TCP/IP MLP

      In our 5.4.1 we use mlp_tcp-showNoMatch.pdl

      I was wondering if that functionally is what MLLP2 is and if not, is there functionally for showing

      what was received in Hex if there was a no match condition?

      They responded:

      Quote:

      MLLP = minimal lower layer protocol, the HL7 standard that defines the start and end block characters

      MLLP2 = another HL7 standard, adds some additional handshaking/low-level ack/nak on top of MLLP

      Both of these are supported natively (non-PDL) in 5.8 and as noted if you want to see data outside of the encapsulation this can be done through EO.

    • #72371
      Mark Thompson
      Participant

      What EO setting is required?  Hopefully it allows us to see a hexdump of data outside the message wrapper without seeing all the “normal” data inside the wrapper.

      - Mark Thompson
      HealthPartners

    • #72372
      Rob Abbott
      Keymaster

      I’ve tested this and there is not an EO setting that will show only exceptions.

      Per Mike’s request we have added this as an enhancement request for a future release.

      In the meantime if you want the exceptions logged, you can continue to use PDL.

      Rob Abbott
      Cloverleaf Emeritus

    • #72373

      Here’s some more info from dev …

      Quote:

      The hex dump is enabled with the Tcp EO alias set for debug as I remember. I always had a problem getting to right so … It should be the same as the EO required by the PDL version as it will show all data received. There is no way to just get the junk between messages in the Tcp version — one gets everything.

      The difference between MLLP and MLLP2 can be obtained from reading the link

      http://www.hl7.org/v3ballot/html/infrastructure/transport/transport-mllp.htm

      There is a PDL for MLLP2 in 5.7 and later as was requested (and supplied) by a customer.

      In general I would forget that MLLP2 exists as the standard has too many things that are not clearly defined when errors occur.

      -- Max Drown (Infor)

    • #72374
      Robert Milfajt
      Participant

      So reading about MLLP 2, my head started spinning and a bunch of questions came to mind.   😕

      From a glance, will we need to modify PDLs to send out the new MLLP ACK/NAK, or still keep the TCL script for replies like that we have in place and just modify those scripts?

      I guess what I really want to know is whether the new MLLP ACK/NAK replaces the traditional HL7 ACK/NAK, or whether the two are used in combination?

      Thanks,

      Bob

      Robert Milfajt
      Northwestern Medicine
      Chicago, IL

    • #72375
      John Mercogliano
      Participant

      We just upgraded to 5.7 and are looking at using the MLP2 pdl for local connections to do the ack instead of a tps.  One less proc and less bandwith. It seems to work great but is there more to the mlp2 implemenation I need to be aware of?  It looks like it just adds two new phrases to define the ack and nak and that is all.  

      Thanks,

      John Mercogliano
      Sentara Healthcare
      Hampton Roads, VA

    • #72376
      Jim Kosloskey
      Participant

      John,

      Just my thoughts here…

      I don’t know much about mllp2 at this point but from what I understand I think tcp/ip length encoding would be more efficient for internal connections: vs 2 bytes vs 4 bytes plus just having to go the offset rahter than scan to the end. Perhaps the creation of the ack|nak is created in the PDL I don’t know but one proc hardly seems excessive.

      Having said that, beginning with 5.8 there is no need for local threads for cross site communication.

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

    • #72377
      John Mercogliano
      Participant

      Hi Jim,

        Yes, the ack/nak is created in the pdl.  I was playing with it in a test site ,only 4 bytes. So you no longer need a tps to send the ack just drop in the pdl.  From a conformity standard we want to stick with using the PDL tcp connections as that is what everyone is familiar with.  But cutting down the full HL7 ack to a one byte ack would still be substantial for us and one less step when setting up a local connection.  

        Yes, 5.8 is sounding really cool with that option and the threading option.  Goutham from Healthvision was just here helping us size our site for new hardware as HP is getting rid of PA-RISC and cloverleaf is not supporting Itanium at this point.  He was giving a lot of good info on 5.8.  Being we just moved from 5.2 to 5.7, going to 5.8 is not in the cards any time soon.  Which is a shame. 🙁

      John Mercogliano
      Sentara Healthcare
      Hampton Roads, VA

    • #72378
      Charlie Bursell
      Participant

      Hey guys, don’t get off on a tangent here.  MLLP2 is a different animal see this web site

       http://www.hl7.org/v3ballot/html/infrastructure/transport/transport-mllp.htm

    • #72379
      Robert Milfajt
      Participant

      Quote:

      Hey guys, don’t get off on a tangent here.  MLLP2 is a different animal see this web site

      http://www.hl7.org/v3ballot/html/infrastructure/transport/transport-mllp.htm

      Charlie, that’s what prompted my question.  It seems to me that the one byte ACK/NAK is going to be in addition to the HL7 ACK MSH|…MSA|AA…  Did I read that right?

      Robert Milfajt
      Northwestern Medicine
      Chicago, IL

    • #72380
      John Mercogliano
      Participant

      Robert and Charlie,

        Goutham actually pointed me to the mllp2 pdl.  At least the way we were wanting to use it, for local connections. The client side was still staying as a standard mllp pdl.  Just using the MLLP 2 pdl as a cheap way of setting of the server connection so we don’t have to write a new reply tps for local connections.

        Robert, you are correct, the documentation really is confusing on whether or not you still need a standard HL7 Ack/nak also,

        Charlie, this is why I joined the conversation.  It appears you and Goutham have differing opinions about using the mllp2 pdl. Can you two put your brilliant heads together can give us some guidelines on when we should use the new pdl over the existing ones?

      Thanks,

      John Mercogliano
      Sentara Healthcare
      Hampton Roads, VA

    • #72381
      Charlie Bursell
      Participant

      Since MLLP2 is a different animal and still not in general use that I know of, if it were me, I would not use it.

      However, if you feel you can manipulate it and it works for what you are doing, go for it.

    • #72382
      Mike Ellert
      Participant

      I went live on CL5.8R2 on RHEL 5.3 Tuesday, Jan 18th.  As part of testing, I converted all of my threads to the new built-in encapsulated TCPIP protocol.

      I already knew during testing that the threads were sluggish responding to commands such as pstart and pstop.  I use scripts to start and stop processes and threads.  However, we have about 20 outbound threads over VPN and the release notes state that the new protocol would handle the looping issue on VPN threads.  Sooooooooooo, I went with them.

      I was pleased with the go-live through Tuesday but by Wednesday morning, I was starting to get concerned.  I email error logs nightly and Wednesday morning’s email was over 2MB – much of it “Can’t connects” which were expected – but there were a huge number of timeouts on threads – lots of them even on threads where I was connecting to another thread on the same server to ‘hop across’ processes.  I had threads that process 18,000 lab result messages/day (I know, not a big number) falling behind, writing partial messages and causing timeouts.  I had inbound threads not acking the sending systems in a timely manner.

      The last straw came in the form of a phone call in the wee hours Thursday.  No lab results to our EHR in over four hours.  I logged in and everything was a mess.  I even had queues stacked up in the routes in net monitor – something I’d NEVER seen in over 12 years.  Over the course of a couple hours of looking at traces, I narrowed it down to a pair of connections to one server – somehow, these two threads had everything else ‘locked up’ for lack of a better term.  I killed the listeners on that server and bang – everything caught right up.

      I spent the next couple hours converting all of my threads back to the mlp_tcp pdl and CL5.8 is now running like a charm again.  No timeouts, no backed up threads – and the threads respond to commands almost instantly.  I will go back to stopping/starting my VPN threads every half an hour to mitigate the looping logging problem – it’s a small price to pay for having a system that runs smoothly.

      I will say this though – when I use a client and server pair to hop from one process to another, the server thread has to be up first or the client thread will never connect.  In CL5.5 and prior versions, it didn’t matter what order you brought them up in.

      Just something to be aware of.

      PS: I’m in no way bashing the product.  CL has been rock solid for as long as I’ve used it and I expect it will continue to be.

    • #72383
      Bakha Nurzhanov
      Participant

      Anyone else is using built-in encapsulated TCP/IP protocol? If so, are you seeing any issues?

      I just had to go back to using “old” pdl-tcpip with mlp_tcp.pdl after troubleshooting an inbound connection. During the troubleshooting I discovered (using tcpdump) that HL7 ACK messages, generated by the engine, did not have start block and end block bytes. As far as I know only one connection was affected (and we are trying this out in our test sites) and a few others that I had built using new thread templates (with built-in encapsulated TCP/IP protocol) are working OK.

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

Forum Statistics

Registered Users
5,117
Forums
28
Topics
9,292
Replies
34,435
Topic Tags
286
Empty Topic Tags
10