オプションで、メッセージ・フロー内の制御の順序とフローを決定するノードを使用して、フローによるメッセージの処理方法を決定します。
- 決定を下すためのノード
- Validate ノード
- Validate ノードは、入力ターミナルに到着するメッセージが予想したとおりであるかどうかを検査するために使用します。 メッセージが、予想した
メッセージ・テンプレート・プロパティー (メッセージ・ドメイン、メッセージ・セット、
およびメッセージ・タイプ) を持つかどうか、またメッセージの内容が正しいかどうかを検査できます。 メッセージは、1 つ以上のメッセージ・ドメイン、メッセージ・セット、またはメッセージ・タイプ値に照らして検査できます。
Validate ノードは、WebSphere® Message Broker バージョン 6.1 では使用すべきでない Check ノードに取って代わるものです。 Validate ノードは Check ノードと同様の処理をしますが、設定できる「妥当性検査」プロパティーの数が多く、当該機能をサポートするパーサーがメッセージの内容を検証できます。
- Filter ノード
- Filter ノードを ESQL ステートメントと一緒に使用すると、このノードによるメッセージの送信先になる次のノードを決定することができます。 他のいかなるタイプのノードにおいても、Filter ノード内で使用するために作成した ESQL コードは使用しないでください。
ノードのターミナルとしては True、False、Unknown、および Failure があります。テストが成功すると、メッセージは True ターミナルに伝搬し、失敗すると、False ターミナルに伝搬します。ステートメントが解決できない場合 (例えば、入力メッセージにはないフィールドの値をテストする場合)、メッセージは Unknown ターミナルに伝搬します。 他のエラーが検出された場合、メッセージは Failure ターミナルに伝搬されます。
ESQL ステートメントのテストの結果は、メッセージの内容、データベースの内容、またはこの両者の組み合わせによって異なることがあります。
データベースを参照する場合、このノードからデータベースにアクセスする方法を制御するには、ブローカー・システムのレジストリーで定義されるデータ・ソースごとに、ユーザーおよびパスワード情報を指定します。これらの値を初期化し、保守するには、mqsisetdbparms コマンドを使用します。
メッセージ選択およびルーティングを提供するためには、このノードを Compute ノードより優先して使用してください。このタスクでは Filter ノードのほうが効率的です。
- FlowOrder ノード
- このノードのターミナルを接続すると、ノードの 1 つのシーケンス、続いてノードの 2 番目のシーケンスがメッセージを処理するように強制できます。
- Passthrough ノード
- Passthrough ノードは、実行時にサブフローをバージョン管理できるようにするために使用します。 ラベルをサブフローに追加するには、このノードを使用します。 このラベルと、バージョン管理システムからの予約語置換とを併用すると、デプロイ済みのメッセージ・フローに組み込まれているサブフローのバージョンを識別できます。
このラベルは自分独自の目的のために使用できます。ラベルに正しいバージョン・キーワードを組み込んでいる場合は、以下のようにラベルの値を参照できます。
- ブローカー・アーカイブ (BAR) ファイルに保管されているものを、mqsireadbar コマンドを使用して
- 特定のブローカーに最後にデプロイされたものを、WebSphere Message
Broker Toolkit から、デプロイされたメッセージ・フローのプロパティーによって
- ブローカー内で (メッセージ・フローのユーザー・トレースを使用可能にしている場合)
- Route ノード
- Route ノードは、メッセージ・フローの異なるパスの下で特定の基準を満たすメッセージを送信するために使用します。 例えば、要求の詳細に基づいて、メッセージを異なるサービス・プロバイダーに転送することができます。 Route ノードを使用して、不必要なステップを回避することもできます。 例えば、特定のデータがメッセージに含まれているかどうかを検査し、データがない場合のみデータベースのルックアップ操作を実行することができます。 「分散モード」プロパティーを「すべて」に設定すると、それぞれ異なる条件が必要な複数のイベントを起動することができます。
例えば、特定のアカウント ID に関連した要求をログに記録し、監査される特定の製品に関連した要求を送信することができます。
最小限のプログラミング論理を使って、メッセージ・ルーティングをインプリメントするには、Route ノードを使用します。 さらに進んだルーティング・シナリオの場合、Compute ノードまたはJavaCompute ノードを使用します。
- RouteToLabel ノード
- 複雑なルーティングでは、Compute ノードまたは JavaCompute ノードの後に RouteToLabel ノードを使用してください。Compute または JavaCompute ノードに、RouteToLabel ノードによって使用される宛先のリストを定義します。
RouteToLabel ノードは、宛先を尋ね、対応する Label ノードにメッセージを渡します。
- DatabaseRoute ノード
- 適用される XPath ルーティング式とともにデータベースから取得した情報を使用してメッセージを送付するには、DatabaseRoute ノードを使用します。ノードは、位置指定されたデータベース行から指定された列値の集合を検索し、1 つ以上の XPath 式をこれらの獲得した値に同期的に適用します。 最小限のプログラミング論理を使って、メッセージ・ルーティングをインプリメントするには、DatabaseRoute ノードを使用します。 さらに進んだルーティング・シナリオの場合、Compute ノードまたはJavaCompute ノードを使用します。
- Label ノード
- Label ノードを、メッセージを処理する 1 つ以上のノードの次のシーケンスに対するターゲットとして使用してください。 あらゆるタイプのメッセージに対してこのノードと RouteToLabel ノードを、または SOAP メッセージに対してはこのノードと SOAPExtract ノードを、組み合わせて使用します。
Label ノードは、メッセージをフローの次のノードへ経路指定しますが、処理は行いません。
- ResetContentDescriptor ノード
- ResetContentDescriptor ノードを使用すると、メッセージ・ビット・ストリームがメッセージ・フローの後続のノードによって次に解析されるときに使用される、新しいメッセージ・プロパティーを設定できます。