› Clovertech Forums › Read Only Archives › Cloverleaf › Cloverleaf › Joint messages
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!
Additional infor.
Connection to the receiving system is via PDL-TCPIP. Recovery33 is implemented.
TIA!
Make sure the message is formatted
The last three characters should actually be
The first
Next check that you don’t have an extra
That’s a start. We can go further if this checks out ok.
-mh
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).
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!
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.
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.
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
> 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!
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
>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!
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
Thanks,
-mh