FileInput ノードを使用して、ローカル・ファイル・システム上のファイルを読み取ってから、そのファイルの内容をベースとするメッセージを伝搬する方法について説明します。
この例では、
「レコード検出」、
「区切り文字」、および
「区切り文字タイプ」プロパティー内の値の 1 種類の組み合わせを使用して、ファイルからメッセージを抽出する方法を示します。 この例は、メッセージ・フローの
FileInput ノードについて説明しています。また、フローの残りはすでに開発済みであると想定されています。
さらに、
Windows システムを使用することも想定されています。 このタスク例を完了するには、まず
FileInput ノードをメッセージ・フローに追加する必要があります。 他に以下のリソースが必要です。
以下のステップを実行します。
- 必要なノード・プロパティーを FileInput ノード上で設定します。 以下の表は、設定する必要のある FileInputノード・プロパティー、どのタブに表示されるか、およびこの例をたどるために設定する必要のある値を要約しています。
タブ |
プロパティー |
値 |
基本 |
入力ディレクトリー |
C:¥FileInput¥TestDir |
ファイル名またはパターン |
test_input1.xml |
正常処理時のアクション |
アーカイブ・サブディレクトリーに移動する |
重複するアーカイブ・ファイルを置き換える |
選択されている |
入力メッセージの解析 |
メッセージ・ドメイン |
XMLNSC |
メッセージ・セット |
xml1 |
ポーリング |
ポーリング間隔 |
3 |
再試行 |
ファイル失敗時のアクション |
タイム・スタンプを追加し、バックアウト・サブディレクトリーに移動する |
レコードとエレメント |
レコード検出 |
区切り |
区切り文字 |
DOS または UNIX の行終了 |
区切り文字タイプ |
後置 |
FTP |
FTP |
選択されない |
- メッセージ・フローをブローカーにデプロイします。 パッケージ化およびデプロイを参照してください。
これらのステップを実行すると、以下のアクションが起きます。
- ファイルが処理されます。 FileInput ノードは、「レコードとエレメント」タブのプロパティーで設定されている値に基づいて、DOS または UNIX の行末文字で区切られているレコードを検出し、それぞれのレコードごとにメッセージを作成します。 このノードは、Out ターミナルに接続されているフローに以下の 3 つのメッセージを伝搬します。
- End of Data ターミナルにフローが接続されている場合、このファイル中の最後のレコードが処理された後、End of Data メッセージが伝搬されます。
- 処理が完了すると、ファイル test_input1.xml は mqsiarchive サブディレクトリー C:¥FileInput¥TestDir¥mqsiarchive¥test_input1.xml に移動されます。
test_input1.xml という名前のファイルが mqsiarchive サブディレクトリー内にすでに存在する場合、そのファイルは上書きされます。
- メッセージ・フローに障害が起きた場合、FileInput ノードのプロパティーに設定されている値に従って、再試行処理が試みられます。 このタスク例では、タイム・スタンプがファイル名に追加され、ファイルは mqsibackout ディレクトリーに移動されます。 その場合のファイルのパスは、C:¥FileInput¥TestDir¥mqsibackout¥20070928_150234_171021_test_input1.xml となります。
FileInput ノードの「レコード検出」、「区切り文字」、および「区切り文字タイプ」プロパティーに、他の値の組み合わせを指定した場合の結果の詳細は、ファイルをレコードに分離する方法の制御を参照してください。
サブディレクトリー内のファイルも処理されるようにこの例を拡張するには、「入力ディレクトリー」のサブディレクトリーに入力ファイルを置き、プロパティー「ローカル・サブディレクトリーを含める」を選択します。
以下のサンプルも、このノードの使用方法を示します。
サンプルに関する情報は、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。