Variant Mismatch

  • Creator
    Topic
  • #50728
    Tim Jipson
    Participant

    When I receive a message that doesn’t fit the variant how can I prevent the process from crashing?

Viewing 10 reply threads
  • Author
    Replies
    • #67272
      Anonymous
      Participant

      I have never seen the process crash because of a variant problem. So I’m not sure I understand you question. And believe me I think I have experienced almost every HL7 issue there is from just badly defined fields and segments to where the variant was just not moved to production.

      So can you give us a little more information on your issue. I would really like to help you out.

    • #67273
      Tim Jipson
      Participant

      I have Redhat RHEL 5 and Cloverleaf 5.6.

      Maybe hang would be more accurate than crash.

      For example, If I receive a message with a PD1 segment and my variant doesn’t have a PD1 then the process stops processing messages. I actually have to click the processes stop button twice then my console will freeze for 30-45 seconds. At this point I’ll able a to delete the message for the recovery DB, restart the process and everything will be fine.

    • #67274
      Anonymous
      Participant

      What happens if you take that bad message and run it through the tester.

      I have had messages in the system that do not have a segment defined, on both a windows and AIX platform that just ignore the segment but still process the message usually incorrectly.

      I think there must be something else other then just a mis defined hl7 variant.  When you stop the process what does the log file say happened ?  I would try both running the message through the tester  both as a plain xlate and then through each TPS proc if any are there.

      And if that works try to run it through the tester in the route test. You should be able to narrow the real problem down.

    • #67275
      Jim Kosloskey
      Participant

      Tim,

      In 5.6 Route details there is a new check box regarding elevating warnings to errors.

      I am not sure how that behaves but is that set?

      Also is this the inbound variant or the outbound variant that is missing the PD1 (or both) in this case?

      Anyway, I just simulated what I think is your situation on our AIX Cloverleaf(R) 5.6 and I see the warnings regarding a missing segment but no hanging or crashing.

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

    • #67276
      Tim Jipson
      Participant

      I took a good record and changed IN1 to ABC and ran it through the HL7 tester:

      MESSAGE 1

      [0:TEST] [mid:0xb7837050] unknown segment ‘ABC’ — ignored.

      I then ran an XLT test and got no output below ‘Command output:’, then I clicked back on HL7 and got no output again. I changed my record to a good one(still on HL7) and got no output. I had to restart the test tool before it would start processing again.

      In the logs, I have hundereds of these per second:

      Code:


      [msg :RecP:ERR /0:p_dev_NN_xlate:03/18/2009 13:28:54] [0.0.41357] The # 5 segment encountered ‘ABC’ is out of order for message type ‘ADT_A08’.  Segment ignored.
      [xpm :xlt :ERR /0:p_dev_NN_xlate:03/18/2009 13:28:54] Error during PathCopy: The # 5 segment encountered ‘ABC’ is out of order for message type ‘ADT_A08’.  Segment ignored.


      I am using pathcopy but PD1 is optional and I’m certainly not using if with ABC.

    • #67277
      Jim Kosloskey
      Participant

      Tim,

      Okay curiosity got the better of me (besides we are migrating to 5.6 so this will be useful).

      I checked the elevation box on the route details like I mentioned in a previous post to see what occurs.

      That changed the WARN to an ERR in the process log and in the err log.

      On another note, id this something that is expected to be corrected by the sending system or your definition of the variant?

      Because if you were planning on having the engine just run with those issues, that is not something I would do.

      We do not want to see any log entries indicating our messages and variants do not match.

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

    • #67278
      Tim Jipson
      Participant

      The elevation box is not checked. I’m not sure checking the box will change anything but I’ll try it tomorrow.

      I’m not sure I understand your note, If I plan for a message to be formatted a certain way and I get sent something strange one day I don’t want that rogue message to bring down the server. So wether the segment is ignored or the message is sent to the error db I don’t really care as long as everything else keeps working.

    • #67279
      Anonymous
      Participant

      Interesting, I’m on 5.5 so trying to reproduce what you are seeing is not a real recreation of what you have. Needless to say I did several things but could not get the thing to die/ hang up or any such thing.

      What I think you might do is report this a bug. The engine should (IMO) never hang-up because a bad message.   We are shortly going to upgrade so This is something I will really have to look into. I would hate to have some vendor send something that today just gets ignored but tomorrow would stop the engine.  I say that with the understanding I try to make sure I get no errors or ignores in the log file or in the error database.  But sometimes vendors do very intelligent things.  ðŸ˜ˆ

    • #67280
      Jim Kosloskey
      Participant

      Tim,

      You are correct the engine should not hang when a ‘rogue’ mesage arrives.

      I just wanted to make sure you wre OK with a message arriving that does not meet your specs (there are people who routinely get segment issues in the log and just ignore them).

      Your last post about getting hundreds of those messages per second leads me to believe you either have hunderds of arriving mal-formed messages or there is a loop somewhere possibly caused by an erroneous configuration or a Tcl proc run amok.

      Try setting up two simple threads in a test environment. Remove any unecessary configuration settings and tclprocs; only route the mesage you want via the Xlate in question (kill all the others); then resend ONE message into the inbound with the engine ‘noise’ all the way up.

      Hopefully that will not lock up. But you should get a decent log in case it does.

      If it does not lock up take a careful look at the process that does lock especially the threads related to the problem integration.

      John –

      I tried to cause this lockup on our Test 5.6 and could not get it to happen. I doubt this is a bug in Cloverleaf(R).

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

    • #67281
      Tim Jipson
      Participant

      My threads already have the bare mininum and this is also happening in the test tool.

      What I just did was I used the smallest xlate and added to it. An xlate with only a bulkcopy errored out and had no output but the test tool did not lock up.

      Next I did a pathcopy on MSH. I got the variant error message and the MSH segment was in the output. Next I added PID and PV1 pathcopies, still all is well.

      Since group 0 is working well I added the iterate for group 1. CRASH. Nothing is even under the iterate it’s just there and the test tool locked up. The settings for the iterate are Type: group  Basis: 1(0).0  Var: %g1. This iterate works fine with a good message.

    • #67282
      Tim Jipson
      Participant

      I found it!!!

      Under Site Options, Error Handling I unchecked Message Parsing and I get the output that I’ve been looking for. I don’t know why this was checked, it doesn’t seem to be on by default.


      MESSAGE 1
      [0:TEST] [mid:0xb7760050] unknown segment ‘ABC’ — ignored.
      [0:TEST] Warning during PathCopy: unknown segment ‘ABC’ — ignored.
      0(0).MSH(0)
      [code]
      MESSAGE 1
      [0:TEST] [mid:0xb7760050] unknown segment ‘ABC’ — ignored.
      [0:TEST] Warning during PathCopy: unknown segment ‘ABC’ — ignored.
      0(0).MSH(0)

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

Forum Statistics

Registered Users
5,126
Forums
28
Topics
9,296
Replies
34,439
Topic Tags
287
Empty Topic Tags
10