FileRead ノードによって、
ファイルの内容に基づいてメッセージを経路指定または拡充できます。
メッセージ・フローを作成する際に、読み取るファイルの名前と場所を指定できます。 これらの値は、メッセージの内容に基づいて実行時にオーバーライドできます。
このノードは、既存の FileInput ノードと FileOutput ノードを補完する役割を果たします。 FileRead ノードは、メッセージ・フローの途中からファイルを読み取ります。
メッセージを経路指定するためのノードの使用
メッセージは、WebSphere® Message
Broker と同一場所に配置されたファイル、またはネットワーク・ファイル・システム上のファイルの内容を使用して経路指定されます。
ソース・システムからのメッセージは、外部のルーティング・ファイルを使用してターゲット・システムに経路指定されます。 応答は予期されていません。
イベントの基本的な流れは次のとおりです。
- WebSphere Message
Broker が入力ノードからメッセージを受け取ります。
- WebSphere Message
Broker メッセージ・フローは、メッセージの内容を問い合わせてルーティング・キー情報を特定します。
- ファイルが複数のレコードで構成されている場合、以下を判別する必要があります。
- 最初のレコードが開始する位置。 オフセット・バイトを指定しない限り、ノードは最初のバイトでファイルの読み取りを開始します。
- 各レコードを終了する方法 (固定サイズとする、引用符で区切る、または解析する)。
- 伝搬するレコード。 この決定には、入力メッセージとファイルの情報を組み合わせて利用することができます。 指定された開始点からのすべてのレコードが、レコード選択式に一致するレコードが見つかるまで読み取られます。次に、そのレコードが伝搬されます。
以下に例を挙げます。
- ローカル環境フィールド $OutputLocalEnvironment/File/Read/RecordNumber=3 によって示されるとおり、3 番目のレコード。
この例では、最初のレコードが最後まで読み取られ、式が false に評価されます。 次に 2 番目のレコードが最後まで読み取られ、式が false に評価されます。 3 番目のレコードが最後まで読み取られたとき、式が true に評価され、このレコードが伝搬されます。 これ以降のレコードは読み取られません。
- 入力メッセージのキー・フィールドが、ファイル内のキー・フィールドと一致する ($InputRoot/XMLNSC/FromMQInputMessage/Record1 = $ResultRoot/XMLNSC/FromFile/Record5)。 この例では、レコードの Record5 エレメントの値が、入力メッセージの Record1 エレメントの値と一致するまで、ファイルからレコードが読み取られます。
ノードが、レコード選択式に正しく突き合わせられるまでに、何件のレコードを読み取る必要があるかは、ファイル内のレコードの位置によって決まります。
- メッセージ・フロー内にレコードのローカル・キャッシュを実装することにより、複数の静的レコードを読み取るパフォーマンス・コストを削減することができます。
ローカル・キャッシュの実装方法の例については、以下のサンプルを参照してください。
- ファイルから情報を取り出して、これを出力メッセージにコピーすることもできます。 コピーはデータのサブセットとすることができ、メッセージまたはローカル環境のあらゆる場所にコピーできます。 詳しくは、結果メッセージと着信メッセージの結合を参照してください。
- ターゲット・アプリケーションは経路指定されたメッセージを受け取ります。
XML または CSV ファイルの内容に基づいてメッセージを処理する方法について詳しくは、
以下のサンプルを参照してください。
サンプルに関する情報は、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。