I compared the hl7Raw_ack.tcl and there is no difference. But there is a difference in processing.
The 6.0.2 debug output:
[0.0.114506737] Writing message to Protocol Driver pdl-tcpip
[0.0.114506737] Write msg to connection
bound message efffa528 to `message0′
(message length is 81)
PDL changed states: old 0, new 2
Calling Tcl procedure: hci_pd.write
with args: {{message message0}}
Tcl procedure hci_pd.write returns ‘TRANSMIT’
writing out 84 bytes:
0b 4d 53 48 7c 5e 7e 5c |.MSH|^~|
…..
38 0d 1c 0d |8…|
write buffer has 84 bytes, currently at +0
wrote 84 bytes out of 84
write buffer has 84 bytes, currently at +84
Calling Tcl procedure: write.done
with args: {{status ok}}
Tcl procedure write.done returns ”
PDL changed states: old 2, new 0
PDL did write msg: code = 0
[0.0.114506737] Writing message succeeded
And the new 6.1 output:
[0.0.817] Writing message to Protocol Driver pdl-tcpip
[0.0.817] Write msg to connection
bound message effffa28 to `message0′
(message length is 129)
PDL changed states: old 0, new 2
Calling Tcl procedure: hci_pd.write
with args: {{message message0}}
Tcl procedure hci_pd.write returns ‘TRANSMIT’
writing out 132 bytes:
0b 4d 53 48 7c 5e 7e 5c |.MSH|^~|
…..
34 0d 1c 0d |4…|
write buffer has 132 bytes, currently at +0
wrote 132 bytes out of 132
write buffer has 132 bytes, currently at +132
Calling Tcl procedure: write.getResponse
with args: {{status ok}}
Tcl procedure write.getResponse returns ‘RECEIVE’
trying to match phrase: ack-msg
It looks like the code has changed, to use a procedure called write.getResponse instead of write.done ?
Both are inbound threads, both use hl7Raw_ack in the TPS Inbound Data, and both are set to ASCII in the protocol properties encoding.
The 6.1 output goes on with more tries and also says something about a partial message???
PDL setting timeout in 10.00 seconds
diag ev alloc 0x317e4e38
diag dqe alloc 0x31772f08
tiRegistering TIMER () event 0x317e4e38 for tid 2
evRegistering TIMER () event 0x317e4e38 for tid 2
[0.0.817] Writing message PARTIALLY complete
[0.0.817] Setup callback function for writing partial message
Thread has 0 ready events left.
Thread 2 has been enabled
Thread has 1 ready events.
Processing SOCKET (PDL server) event 0x317730b8
Calling cb 0x300a6b10
Events: E 0, R 8, W 0
PDL clearing timeout
tiUnregistering TIMER () event 0x317e4e38 for tid 2
evUnregister TIMER () event 0x317e4e38 for tid 2
diag dqe free 0x31772f08
diag ev free 0x317e4e38
read 34 bytes
input buffer accepted 34 bytes, now 34
4d 53 48 7c 5e 7e 5c 26 |MSH|^~&|
7c 7c 7c 7c 7c 7c 7c 41 ||||||||A|
43 4b 7c 7c 50 7c 32 2e |CK||P|2.|
34 0d 4d 53 41 7c 41 52 |4.MSA|AR|
7c 0d ||.|
match phrase ack-msg rejected
multi: phrase #0 rejected; trying next
trying to match phrase: nak-msg
match phrase nak-msg rejected
multi: phrase #1 rejected; trying next
no-match: no more phrases to try
Calling Tcl procedure: write.gotNak
with args: {{status error} {type no-match}}
pdiIgnoreInput: chop to 4294967295, bolen 0
pdiIgnoreInput: after clear: 0 + 0
Tcl procedure write.gotNak returns ‘TRANSMIT’
Is this really new code for 6.1 or is this a result of the reception of the ACK by the end end of the connection (OpenLink)?
I will open a ticket.
Peter
Peter Heggie
PeterHeggie@crouse.org