25.01.2015 Views

Ensemble HL7 Version 2 Development Guide - InterSystems ...

Ensemble HL7 Version 2 Development Guide - InterSystems ...

Ensemble HL7 Version 2 Development Guide - InterSystems ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Elements of a Routing Production<br />

LargeGapSize<br />

• MSH:10 MessageControlId<br />

A sequence manager can check for duplicate messages and messages out of sequence,<br />

duplicate messages or messages out of sequence, or neither. This makes EnableDuplicatedMessageCheck<br />

entirely independent of PerformSequenceNumberCheckOn in that either, one, or<br />

both of these settings may be True.<br />

A number that indicates a significant gap in the sequence of messages.<br />

A late message is a message that arrives with a sequence number larger than the previously<br />

received message in the sequence, but not exactly sequential. For example, when message<br />

102 arrives after message 101, 102 is not late; it is the next message in sequence. However,<br />

when message 110 arrives after message 101, 110 is a late message.<br />

When there is a late message, and the sequence numbering gap between the preceding and<br />

subsequent messages is less than the configured LargeGapSize, this is a small gap. A gap<br />

larger than this is a large gap.<br />

• For any small gap, the sequence manager waits for MessageWaitTimeout seconds to see<br />

if messages will arrive to fill the gap. If the messages arrives within the waiting period,<br />

the sequence manager aligns them in their proper sequence. If they do not arrive and the<br />

MessageWaitTimeout expires, the sequence manager stops waiting and sends whatever<br />

it has for messages in the current sequence.<br />

• When there is a large gap, the sequence manager does not wait for any period of time.<br />

It immediately sends an alert, then sends whatever it has for messages in the current<br />

sequence.<br />

The default LargeGapSize is 100.<br />

MessageResendableTimeWindow<br />

Time window during which the sequence manager considers a duplicate message to be a<br />

duplicate. The reason for the MessageResendableTimeWindow is that sometimes a duplicate<br />

message is not a mistake. Sometimes it is the result of deliberately resending a message<br />

sequence.<br />

Suppose a message arrives and the sequence manager detects that it is a duplicate of a previously<br />

received message. In this case:<br />

• If it has been more than MessageResendableTimeWindow seconds since the sequence<br />

manager first saw this message, it interprets the new arrival as a deliberately resent copy.<br />

The sequence manager begins tracking the messages in this resent sequence independently<br />

from its tracking of the main sequence of messages.<br />

40 <strong>Ensemble</strong> <strong>HL7</strong> <strong>Version</strong> 2 <strong>Development</strong> <strong>Guide</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!