The start of a message sequence is determined by the Start of sequence definition property on the Resequence and Sequence nodes.
When you use the Resequence node to reorder messages in a message flow, you use the Start of sequence definition property on the Resequence node to define how the reordered message sequence will start. You can specify the starting sequence number in one of the following ways:
<doc><grp>a<grp><seq>5</seq></doc>
<doc><grp>a<grp><seq>4</seq></doc>
<doc><grp>a<grp><seq>3</seq></doc>
<doc><grp>a<grp><seq>2</seq></doc>
<doc><grp>b<grp><seq>0</seq></doc>
<doc><grp>b<grp><seq>2</seq></doc>
At this point, the automatic period for the start of sequence
expires (5 seconds), then the following messages are received:<doc><grp>a<grp><seq>6</seq></doc>
<doc><grp>b<grp><seq>3</seq></doc>
<doc><grp>a<grp><seq>2</seq></doc>
<doc><grp>a<grp><seq>3</seq></doc>
<doc><grp>a<grp><seq>4</seq></doc>
<doc><grp>a<grp><seq>5</seq></doc>
<doc><grp>a<grp><seq>6</seq></doc>
<doc><grp>b<grp><seq>0</seq></doc>
No more messages are received before a missing message
timeout occurs, at which point the following messages are propagated
to the Expire terminal:<doc><grp>b<grp><seq>2</seq></doc>
<doc><grp>b<grp><seq>3</seq></doc>
/Employee/EmpStartSeq="10"
<Employee>
<EmpStartSeq>10</EmpStartSeq>
</Employee>
Returned data type | True | False |
---|---|---|
Boolean | True | False |
Numeric | Any non-zero value | 0 or 0.0 |
String | Any string matching true (case-insensitive) | Any string not matching true (case insensitive) |
NodeSet | Never | Always |
When a message evaluates the expression to True (and is therefore identified as the start of the sequence), the node checks that the message has the smallest sequence number collected up to that point. If messages are found with lower sequence numbers, an exception is thrown.
When the first message that evaluates to true has been processed successfully, the XPath expressions of subsequent messages are not checked. If a message arrives with a lower sequence number than the message that was identified as the start of the sequence, an exception is thrown.
When you use the Sequence node to add sequence numbers to messages in the message flow, you use the Start of sequence definition property to specify a literal number that is to be used as the starting sequence number. The value can be any positive or negative integer in the range -9223372036854775807 to 9223372036854775807.
The Sequence node allocates a monotonically increasing sequence number for each input message that arrives at the node, starting with the sequence number that you define in the Start of sequence definition property. However, this value can be overridden by the value of the StartOfSequenceNumber field in the LocalEnvironment of the incoming message. For example: InputLocalEnvironment.Sequence.StartOfSequenceNumber = 10.