Route ノードは、メッセージ・フローの異なるパスの下で特定の基準を満たすメッセージを送信するために使用します。
このトピックには、以下のセクションが含まれています。
例えば、要求の詳細に基づいて、メッセージを異なるサービス・プロバイダーに転送できます。 Route ノードを使用して、不必要なステップを回避することもできます。 例えば、特定のデータがメッセージに含まれているかどうかを検査し、データがない場合のみデータベースのルックアップ操作を実行することができます。 「分散モード」プロパティーを「すべて」に設定すると、それぞれ異なる条件が必要な複数のイベントを起動することができます。 例えば、特定のアカウント ID に関連した要求をログに記録し、監査される特定の製品に関連した要求を送信することができます。
XPath フィルター式を使用して、処理を制御します。 フィルター式の結果は、ブールとしてキャストされるので、結果は必ず真または偽になります。 XPath 1.0 の照会構文について詳しくは、W3C XPath 1.0 Specificationを参照してください。
Route ノードはメッセージ・フローのノード・パレットのルーティング ・ドロワーに含まれ、WebSphere® Message Broker Toolkit では、次のアイコンで表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
Route ノードには入力ターミナルが 1 つ、出力ターミナルが Match、Default、および Failure の最低 3 つあります。 Default 出力ターミナルと Failure 出力ターミナルは静的で、ノードに常に存在します。 動的な Match ターミナルは、新しい Route ノードが選択されてメッセージ・フロー・エディターで使用されるたびに、自動的に作成されます。 この動作から、このノードの操作に必要なターミナルの最低数を満たす、このノードの最初の動的出力ターミナルの作成は必ずしも必要ありません。 「Match」という名前が適さない場合は、この動的ターミナルを名前変更することができます。
フィルター式のいずれも True にならない場合は、メッセージは Default ターミナルにコピーされます。 フィルター操作中に例外が発生した場合は、メッセージは Failure ターミナルに伝搬されます。 Route ノードは 1 つ以上の動的な出力ターミナルを定義できます。 すべてのターミナルで、関連付けられたフィルター式が入力メッセージに適用され、 結果が True の場合はメッセージのコピーが指定されたターミナルにルーティングされます。 Route ノードによって、ターミナルが駆動される順序が決定されます。 このノードは常に、フィルター・テーブルに現れる順序でメッセージをターミナルに伝搬します。
それぞれのフィルター式はフィルター・テーブルで指定された順に、入力メッセージに適用されます。 結果が True の場合は、メッセージのコピーがそのメッセージに関連付けられた動的な出力ターミナルにルーティングされます。 「配布モード」プロパティーを First に設定すると、一部のフィルター式が適用されない可能性があります。
<EmployeeRecord>
<EmployeeNumber>00001</EmployeeNumber>
<FamilyName>Smith</FamilyName>
<Wage>20000</Wage>
</EmployeeRecord>
次は XPath フィルター式です。$Root/XMLNSC/EmployeeRecord/EmployeeNumber="00002"|Match
$Root/XMLNSC/EmployeeRecord/EmployeeNumber="00001"|out_exp2
この例では、「配布モード」プロパティーは First に設定されています。 Route ノードは入力メッセージに対して、XPath フィルター式が表示される順に、それらの式を処理します。 「配布モード」プロパティーが First に設定されているため、未変更の入力メッセージが動的な出力ターミナルに伝搬されるのは一度だけであり、そのターミナルは True になる最初のフィルター式にマップされます。 上記の例では、入力メッセージの従業員番号 (EmployeeNumber) が「00002」でないため、 Match ターミナルに関連付けられた最初のフィルター式は False になります。 そのため、Match ターミナルに伝搬されるメッセージはありません。 2 つめのフィルター式は True です。そのため、入力メッセージのコピーが「out_expr2」の動的なターミナルにルーティングされます。 入力メッセージの従業員番号 (EmployeeNumber) が「00003」の場合は、いずれのフィルター式にも一致しないため、メッセージは静的な Default 出力ターミナルに伝搬されます。 このサンプルで「配布モード」プロパティーが All に設定されている場合、True になるフィルター式は 1 つだけなので、得られる結果は同じです。
Route ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる静的な入力ターミナル。 |
Match | 処理が正常に完了したときに元のメッセージのルーティング先となる動的出力ターミナル。 追加の動的ターミナルを作成することができます。動的ターミナルを参照してください。 |
デフォルト | True になるフィルター式が存在しない場合に、メッセージがルーティングされる静的な出力ターミナル。 |
Failure | 処理で障害が検出された場合に、メッセージがルーティングされる静的な出力ターミナル。 |
Route ノードには動的な出力ターミナルをさらに加えることができます。 Route ノードで作成される動的な出力ターミナルのすべてを、フィルター・テーブルの式にマップする必要はありません。 マップされていない動的な出力ターミナルには、メッセージは決して伝搬されません。 同一の動的な出力ターミナルに複数の式をマップできます。 メッセージを直接渡される静的な出力ターミナルはありません。 動的ターミナルの使用の詳細は、動的ターミナルの使用を参照してください。
Route ノードのインスタンスをメッセージ・フローに入れたら、そのノードを構成することができます。 詳しくは、メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていないプロパティー) すべての必須プロパティーには、アスタリスクが表示されます。
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ、Route。 | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
フィルター・テーブル | はい | いいえ | すべての行が式および関連するターミナル名であるテーブル。
各フィルター式の評価に従ってこのノードで実行されるスイッチングを定義します。 完全な式は次のフォーマットになります。
XPath 式はすべて、$Root、$Properties、$LocalEnvironment、$DestinationList、$ExceptionList、または $Environment で始まらなければなりません。 式を手動で作成する場合は、式を $Body で始めることもできます。
ただし、WebSphere Message
Broker Toolkit の XPath Expression Builder および関連付けられた妥当性検査では、$Body 変数を使用できません。XPath Expression Builder を使用する場合は、代わりに $Root 変数を使用します。式は表に表示される順に評価されます。 パフォーマンスを改善するには、最も一致率の高い式をフィルター・テーブルの上位に指定してください。 通常、XPath のそれぞれの式に、固有のターミナル名を指定します。 |
||
配布モード | いいえ | はい | すべて | このプロパティーは、インバウンド・メッセージが、複数のフィルター式に一致する場合にノードのルーティング動作を決定します。 「配布モード」プロパティーを「最初」(First) に設定すると、メッセージはテーブルで True になる最初の式に関連付けられた出力ターミナルに伝搬されます。 このプロパティーを「すべて」に設定すると、 メッセージは、テーブルで True になるそれぞれの式に関連付けられた出力ターミナルに伝搬されます。 一致する出力ターミナルが存在しない場合は、メッセージは Default ターミナルに伝搬されます。 | distributionMode |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |