Joint messages

  • Creator
    Topic
  • #47594
    David Teh
    Participant

    Hi folks,

    On QDX 3.8.1P.

    I am following up a case where the receiving system is saying they got messages joined together.

    If I am checking the messages in SMAT, and they appear as individual messages, would that be sufficient to conclude that they were indeed sent to the receiving system as individual messages?

    Anyone have encountered similar situations?

    TIA!

Viewing 11 reply threads
  • Author
    Replies
    • #56198
      Ryan Boone
      Participant

      Interesting — I’ve just had this very thing occur but haven’t resolved it yet. If you’re using FTP or disk out and appending to file, it would join all of the messages together. But we’re not appending. And, our individual messages each had an end-of-message segment FTS, but the adjoined messages did not. Could be a problem with the receiver system, but I don’t know at this point. I haven’t seen any others, so I suspect so. Is that the same case with you where there was an isolated incident?

    • #56199
      David Teh
      Participant

      Hi all,

      Additional infor.

      Connection to the receiving system is via PDL-TCPIP. Recovery33 is implemented.

      TIA!

    • #56200
      Michael Hertel
      Participant

      If you know this happens all the time, turn up the engine output on that thread. Then look at the hex dump going out to them.

      Make sure the message is formatted data

      The last three characters should actually be

      The first terminates the last segment.

      Next check that you don’t have an extra in the data portion of the message.

      That’s a start. We can go further if this checks out ok.

      -mh

    • #56201
      Anonymous
      Participant

      David,

      The answer to your original question is yes, if SMAT says it’s one message then it’s one message.

      If a receiver claims that it received two messages in one phrase the only possibilities would be that a translation or TCL procedure did the combining.  But if SMAT says the two messages were descrete then it could only have happened on the receiver end (because it would have received a reply to each descrete message).

    • #56202
      David Teh
      Participant

      Hi Greg and all,

      Thanks for the replies.

      Is it possible for some problems in Recovery 33 (in the procs themselves or when receiving system should ack too slowly) to cause such a problem? In this case, the message(s) would be sent from memory and not captured in the outbound logs?

      Thanks!

    • #56203
      Charlie Bursell
      Participant

      In a word – no.  Unless you have modified the recover_33 procs in some way to do that.

      I would suggest to you that perhaps the receiving system itself is joining the two messages based on what you see.  It is possible that when two messages come into their buffer close together,  they raed the entire buffer rather the individual messages.  It does happen.  Has happened to all of us at one time or another.

    • #56204
      David Teh
      Participant

      Hi folks,

      Some more findings.

      1. ‘x0d’ is indeed missing from the joint messages, although according to SMAT, they were sent as individual messages. However, I did spot a few messages without the ‘end ‘x0d’ but the receiving system has confirmed they were received as individual messages.

      2. In the process logs, I found traces of the ‘problem’ messages indicating they were sent out successfully. But a little after , error messages pertaining to the same message would appear as follow:

      ~~~~~~~PASTE PARTIAL PROCESS LOG~~~~~~~~~~~

      [pd  :pdtd:ERR /0:   threadname] Tcl error:

      msgId = message0

      proc = ‘tpsSaveObMsg’

      args = ”

      result = ‘(SAVE_OB_MSG/threadname) FATAL ERROR! Attempt to save over message ‘message2’ with message ‘message0”

      errorInfo: ‘

      (SAVE_OB_MSG/threadname) FATAL ERROR! Attempt to save over message ‘message2’ with message ‘message0’

         while executing

      “error $errmsg”

         (“run” arm line 27)

         invoked from within

      “switch -exact — $mode {

             start {

                 # Initialize the ob_save global if needed

                 if {[lsearch [info globals] ob_save] == -1}…”

         (procedure “tpsSaveObMsg” line 11)

         invoked from within

      “tpsSaveObMsg {MSGID message0} {CONTEXT send_data_ok} {ARGS {}} {MODE run} {VERSION 3.0}”‘

      ~~~~~~~END PASTE PARTIAL PROCESS LOG~~~~~~

      Thanks folks.

    • #56205
      Michael Hertel
      Participant

      Do you have “Await replies” checked?

      This smells like you do not have all the recover33 procs in all the right places. If you do not have await replies checked, you won’t be able to define all the places for the different procs.

      This would also explain like Charley said, they are reading the buffer and since you didn’t wait for the reply, you over ran them with data.

      -mh

    • #56206
      David Teh
      Participant

      >This smells like you do not have all the recover33 procs in all the

      > right places.

      Let’s run through the config:

      INBOUND REPLIES:

      – ‘Await Replies’ selected, with Timeout: 10

      – Reply generation with tpsResendObMsg

      – TPS Inbound reply: – tpsKillObSave  – hcitpsmshkill {DISP KILLREPLY}

      OUTBOUND DATA:

      Send OK procs: tpsSaveObMsg

      All procs are as supplied from Quovadx. Anything missing?

      >This would also explain like Charley said, they are reading the buffer

      > and since you didn’t wait for the reply, you over ran them with data.

      Is that a ‘misconfiguration’ on the receiving system?

      I am still having problems trying to visualise the chronological events.

      Anything else to check?

      Thanks!

    • #56207
      Michael Hertel
      Participant

      I have a customized version of recovery33 procs.

      So mine won’t match yours completely maybe someone

      else can verify for you, but it doesn’t look like you are

      using pure recovery33 procs either.

      Here are some more things to try:

      Turn your time out from 10 to 30.

      Look at your inbound tab and make sure the outbound only box is checked.

      Here’s how our procs are configured:

      Send OK Procs: tps_save_ob_msg

      Timeout: 30

      Reply generation: tps_resend_ob_msg

      TPS Inbound reply: tps_checkhl7_ack_argv {VERSION 2.4} {VARIANT idx}

      Trxid determination Format: HealthLevelSeven

      It looks like we are close with our procs but I question your TPS Inbound reply configuration. Is the proc name really mshkill or msgkill? It doesn’t look like you are validating that ACK/NAK coming back.

      -mh

    • #56208
      David Teh
      Participant

      Hi Michael,

      >Turn your time out from 10 to 30.

      How would this affect the issue?

      >Is the proc name really mshkill or msgkill?

      Sorry, typo. It’s msgkill.

      Thanks!

    • #56209
      Michael Hertel
      Participant

      The target system may not be able to respond in 10 seconds so the engine will resend the message again. Therefore if the target system had not read the first message, it could have two messages in it’s buffer and that would be what’s causing this problem. You might even have to change the timeout to something higher than 30.

      Could you email me a copy of your recover33 proc file?

      I want to read the header of the file where it tells you how

      to configure your interface. Also, I’d like to see what these procs are doing.

      I believe you need a validation proc for the reply message and

      I believe your “TPS Inbound reply” configuration needs tweaking.

      You can email to pgmmjh@vmmc.org

      Thanks,

      -mh

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

Forum Statistics

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