Resequence ノードと Sequence ノードの「シーケンス定義の開始」プロパティーで、メッセージ・シーケンスの開始点を指定します。
Resequence ノードを使用して、メッセージ・フローのメッセージを再配列する場合は、Resequence ノードの「シーケンス定義の開始」プロパティーを使用して、再配列後のメッセージ・シーケンスの開始点を定義します。 以下のいずれかの方法で、開始シーケンス番号を指定できます。
<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>
この時点で、シーケンスの開始に関する自動期間 (5 秒間) が満了し、その後、以下のメッセージを受け取ります。<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>
それ以降メッセージを受信しないまま、未着メッセージ・タイムアウトが発生します。
この時点で、以下のメッセージが Expire ターミナルに伝搬されます。<doc><grp>b<grp><seq>2</seq></doc>
<doc><grp>b<grp><seq>3</seq></doc>
/Employee/EmpStartSeq="10"
<Employee>
<EmpStartSeq>10</EmpStartSeq>
</Employee>
戻りデータ型 | True | False |
---|---|---|
ブール | True | False |
数値 | ゼロ以外の任意の値 | 0 または 0.0 |
ストリング | true と一致する任意の文字列 (大/小文字を区別しない) | true と一致しない任意の文字列 (大/小文字を区別しない) |
NodeSet | しない | 常時 |
メッセージの式の評価結果が True になると (つまり、そのメッセージがシーケンスの開始であることが判別されると)、ノードは、そのメッセージのシーケンス番号が、その時点までに収集されたメッセージの最小のシーケンス番号であることを確認します。 それよりも小さいシーケンス番号が見つかると、例外がスローされます。
評価結果が True になった最初のメッセージが正常に処理されると、後続メッセージの XPath 式はチェックされなくなります。 シーケンスの開始であると判別されたメッセージのシーケンス番号よりも小さいシーケンス番号のメッセージが着信すると、例外がスローされます。
Sequence ノードを使用して、メッセージ・フローのメッセージにシーケンス番号を追加する場合は、「シーケンス定義の開始」プロパティーを使用して、開始シーケンス番号として使用するリテラル番号を指定します。 -9223372036854775807 から 9223372036854775807 の範囲で正または負の整数値を指定できます。
Sequence ノードは、ノードに到達する各入力メッセージに対して単純に増分するシーケンス番号を割り振ります。その開始点は、「シーケンス定義の開始」プロパティーで定義したシーケンス番号になります。 ただし、この値は、着信メッセージの LocalEnvironment 内の StartOfSequenceNumber フィールドの値によって指定変更できます。 例えば、InputLocalEnvironment.Sequence.StartOfSequenceNumber = 10 のようにします。