Sequence ノードを使用して、入力メッセージの 1 つ以上のグループにシーケンス番号を追加します。
このトピックには、以下のセクションが含まれています。
Sequence ノードを使用すると、入力ソースからメッセージのグループを受け取り、各グループ内のメッセージの到着順序を保持できます。
Sequence ノードを使用すると、各シーケンス・グループに対して単純に増分するシーケンス番号を生成できます。 グループ内の各メッセージが Sequence ノードに到達すると、グループのシーケンス番号は増分し、 ノード・プロパティー「シーケンス番号を保管するパス」で指定された場所 (例えば、 LocalEnvironment、MQRFH2 ヘッダー、メッセージ本体) にメッセージとともに保管されます。
この順序付けは、同じシーケンス・グループ内のメッセージにのみ適用されます。 Sequence ノード内のプロパティーを使用すると、メッセージを特定の条件に従ってグループに編成できます。例えば、メッセージ内のカスタマー番号フィールド内の値が同じメッセージすべてをグループ化できます。 シーケンス・グループを指定しないと、すべてのメッセージに対して 1 つのデフォルト・グループが使用されます。
1 つの Sequence ノードは、メッセージ・フロー内の複数の入力ノードから、 または追加のインスタンスを持つ入力ノードから入力を受信できます。 Sequence ノードは、複数のシーケンス・グループを並列処理できますが、 同一シーケンス・グループに属するシーケンス番号の要求は、一度に 1 つしか 処理できません。
Sequence ノードはシーケンス・グループ内の各メッセージにシーケンス番号を割り振りますが、グループ内の現行メッセージの処理が (コミットされるかまたはロールバックされることにより) 終了するまで、グループ内の次のシーケンス番号は割り振られません。 Sequence ノードの下流で同一のシーケンス・グループ内のメッセージを処理できるスレッドは一度に 1 つだけです。 これによって、メッセージ・フローに複数のスレッドがあっても、 グループでの順序付けが維持されます。
Sequence ノードが複数のスレッドからメッセージを受信した場合、 メッセージが Sequence ノードに着信した順序が保持されます。 しかし、メッセージが Sequence ノードに着信した順序と、 メッセージが入力ノードによってトランスポートから取り出された順序は 異なることがあります。 この状態は、入力ノードから Sequence ノードまでの間で、 あるスレッドのメッセージを他のスレッドのメッセージが追い越すことが原因で発生 する可能性があります。
各シーケンス・グループは、1 つの Sequence ノードだけに関連付けできます。 複数の Sequence ノードで同じ名前のシーケンス・グループを保持できますが、 これらのシーケンス・グループはそれぞれ個別のグループとして処理されます。 シーケンス・グループ同士を区別するために、実行グループ名、メッセージ・フロー名、 ノード名、およびシーケンス・グループ名の組み合わせが使用されます。
例えば、eg1 という実行グループにデプロイされる、node1 という Sequence ノードを含んだ flow1 と いうメッセージ・フローがあるとします。 group1 というシーケンス・グループを使用して、メッセージがそのメッセージ・フローに送信されます。 結果は eg1/flow1/node1/group1 です。 完全に同一のメッセージ・フローが、異なる実行グループ (例えば eg2) にある場合は、eg2/flow1/node1/group1 という結果になります。
Sequence ノードはパレットの「ルーティング」ドロワーに含まれていて、WebSphere® Message Broker Toolkit 内では次のアイコンによって表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
Sequence ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
デフォルト値が定義されていないすべての必須プロパティーには、アスタリスクのマークが付きます。
以下のように、Sequence ノードを構成します。
特定のシーケンス・グループの最初のメッセージが Sequence ノードによって伝搬されると、指定された開始シーケンス番号を使用して先頭のシーケンス番号を割り当てます。連続しているメッセージには単調増加するシーケンス番号が含められます。 この値は、LocalEnvironment.Sequence.StartOfSequenceNumber 変数によって指定変更されます。
XPath 式が有効でも、その式がメッセージの中に存在しなければ、評価結果は False になり、シーケンス・グループ内の次のメッセージにシーケンス番号が割り当てられます。 述部の評価結果が True になると、そのメッセージがシーケンスの末尾になり、そのシーケンス・グループのシーケンスにさらにメッセージが割り当てられることはなくなります。
XPath 式が無効な場合は、式が失敗し、メッセージがロールバックされます。
Sequence ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | 着信メッセージ・アセンブリーがノードに到着する入力ターミナル。 |
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 この値には、再試行処理が原因の障害も含まれます。 |
Out | 出力メッセージがデフォルトで伝搬される出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力する必要がある場合、アスタリスクのマークが付きます)。C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
Sequence ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | Sequence | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
Sequence ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
シーケンス番号を保管するパス | いいえ | いいえ |
|
メッセージのシーケンス番号を保存する場所を指定する XPath 式。 |
シーケンス・グループ ID へのパス | いいえ | いいえ | 未設定 | シーケンス・グループ ID の場所を示す XPath 式。 グループ ID が同じメッセージは、同じシーケンス・グループに属していると見なされます。 このプロパティーは、Collector ノードにおける「相関パス」プロパティーと同じ方法で機能します。 |
シーケンス定義の開始 | はい | いいえ | 0 | 各グループの最初のシーケンス番号を指定します。 有効な値は正または負の整数です。 デフォルト値は 0 です。 |
シーケンス定義の終わり | はい | いいえ | 自動 | 各シーケンス・グループがいつ完了するかを指定します。 有効な値は以下のとおりです。
|
Sequence ノードの拡張プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
持続モード | はい | いいえ | 非持続 | シーケンス・グループの状態を永続的に保管するかどうかを指定します。 有効なオプションは、以下のとおりです。
|
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |