FileOutput ノードを使用して、リモート FTP サーバーまたはリモート SFTP サーバー上のディレクトリーにファイルを書き込みます。
この例は、
「レコード定義」、
「区切り文字」、および
「区切り文字タイプ」の各プロパティー内の値の 1 種類の組み合わせの結果として、複数のメッセージからどのようにファイルが作成されるかを示します。 この例は、
ローカル・ファイル・システムへのファイルの書き込みで説明した例の延長であり、メッセージ・フローでの
FileOutput ノードの使用について説明しています。
以下の説明では、Windows オペレーティング・システムを使用中であり、FileOutput ノードを含むメッセージ・フローが既に作成済みであることを前提にしています。 他に以下のリソースが必要です。
以下のステップを実行します。
- 必要なノード・プロパティーを FileOutput ノード上で設定します。 以下の表は、設定する必要のある FileOutput ノード・プロパティー、プロパティーが表示されるタブ、およびこの例で使用される値を要約しています。
タブ |
プロパティー |
値 |
基本 |
ディレクトリー |
C:¥FileOutput¥TestDir |
ファイル名またはパターン |
test_output1.xml |
ファイルに書き込むためのモード |
一時ディレクトリーに段階的に書き込み、Finish File で出力ディレクトリーに移動します |
ファイルが存在する場合のアクション |
既存ファイルのタイム・スタンプ、保存、および置換 |
重複するアーカイブ・ファイルを置き換える |
選択されている |
レコードとエレメント |
レコード定義 |
レコードは区切り文字で区切られたデータ |
区切り文字 |
ブローカー・システムの行終了 |
区切り文字タイプ |
後置 |
FTP |
リモート転送 |
選択されている |
転送プロトコル |
FTP または SFTP |
リモート・サーバーおよびポート |
ftpserver.hursley.abc.com |
セキュリティー ID |
myidentity |
サーバー・ディレクトリー |
/ftpfileoutput |
転送モード |
ASCII (FTP 用のみ) |
リモート・ファイルが存在する場合のアクション |
既存ファイルの置換または既存ファイルへの追加 |
転送後のローカル・ファイルの保存 |
選択されている |
FTP サーバー または SFTP サーバーのリソースに対して他の値を使用していた場合、その値を使用します。 ここで使用する設定は、ローカル・ファイル・システムへのファイルの書き込みの例で使用した設定と同一です。ただし、「リモート転送」プロパティーが選択されて、「FTP」タブ上にプロパティーがある点が異なります。
「リモート転送」プロパティーをクリアすると、ノードは、ローカル・ファイル・システムへのファイルの書き込みの例の場合と同じ動作をします。「FTP」タブのプロパティーは設定されたままになりますが、無視されます。
このノードの「リモート・サーバーおよびポート」プロパティーは、ローカル環境で値を設定することによりオーバーライドできます。 詳しくは、FileOutput ノード上のリモート・サーバーに関するローカル環境のオーバーライドを参照してください。
- メッセージ・フローをブローカーにデプロイします。 パッケージ化およびデプロイを参照してください。
- FileOutput ノードの In ターミナルに最初の 3 つのメッセージを送信します。
- FileOutput ノードの Finish File ターミナルに最終メッセージを送信します。
- リモート・ファイルが存在する場合、リモート・ファイルに書き込むためのモードを使用して、転送されたファイルが既存のファイルを置き換えるか、または既存のファイルにデータを追加するかを指定します。 転送は、Finish File アクションで発生します。 「追加」の使用をサポートするには、FTP サーバーの構成を更新しなければならない場合があります。
これらのステップを実行すると、以下のアクションが起きます。
- ファイルが処理されます。 FileOutput ノードは、それぞれの末尾にローカル・ファイル・システムの行終了文字を付けたレコードを各メッセージごとに 1 つずつ生成します。 このファイルには、各行が復帰 (X'0D') および改行 (X'0A') 文字のペアで終了する次のようなデータが入っています (Windows システムの場合)。
<Message>test1</Message>
<Message>testtwo</Message>
<Message>testthree</Message>
- レコードは、C:¥FileOutput¥TestDir¥mqsitransit ディレクトリー内のファイル test_output1.xml に蓄積されます。
最終メッセージが Finish File ターミナルに送信されると、このファイルはリモートの FTP または SFTP サーバーのディレクトリーに移動されます (「リモート転送」プロパティーが選択されているため)。 その結果、ファイル /ftpfileoutput/test_output1.xml が作成されます。
- 同名のファイルがリモート FTP サーバーまたはリモート SFTP サーバーのディレクトリー内に存在する場合、既存のファイルが上書きされます。
リモート FTP サーバーが Windows システム上で稼働しておらず、「転送モード」プロパティーが「ASCII」に設定されている場合、転送後に、文字エンコードと行終了文字を変更することができます。 例えば、z/OS® FTP サーバーでは、ASCII テキストは一般に EBCDIC に変換されて、行終了文字のペアは EBCDIC の改行文字 (X'15') に置き換えられます。
その他の FTP サーバーでは、ASCII の転送は、これとは異なる取り扱いを受けることがあります。 SFTP を使用している場合は、「転送モード」プロパティーは無視され、ファイルはバイナリー・ファイルで送信されます。
- 「転送後のローカル・ファイルの保存」プロパティーが選択されているため、ローカル・ファイルは削除されませんが、mqsitransit サブディレクトリーから出力ディレクトリー C:¥FileOutput¥TestDir に移動されます。
同名のファイルが出力ディレクトリー内に存在する場合、既存のファイルの名前が変更されて、mqsiarchive ディレクトリーに移動されます。
例えば、以下のようなファイルが作成される場合があります。
C:¥FileOutput¥TestDir¥mqsiarchive¥20081124_155346_312030_test_output1.xml
ただし、その名前のファイルがこのアーカイブ・ディレクトリー内に存在する場合、そのファイルは、FileOutput ノード上で選択されている「重複するアーカイブ・ファイルを置き換える」 プロパティーの値に従って上書きされます。
詳しくは、
FileOutput および FTEOutput ノードの「レコードの定義」プロパティーの設定を参照してください。ここでは、
FileOutput ノードの
「レコード検出」、
「区切り文字」、および
「区切り文字タイプ」プロパティーに設定されたさまざまな値を使ってこのタスクを実行した結果について説明されています。
以下のサンプルも、このノードの使用方法を示します。
サンプルに関する情報は、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message
Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。