WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

リモート FTP または SFTP ディレクトリーでのファイルの読み取り

FileInput ノードを使用して、リモート FTP サーバーまたはリモート SFTP サーバー上のディレクトリーのファイルを読み取ってから、そのファイルの内容をベースとするメッセージを伝搬します。

始める前に:
この例は、メッセージ・フローの入力としてローカル・ファイルを使用するで説明した例の延長であり、メッセージ・フローでの FileInput ノードの使用法について説明しています。 説明では、Windows オペレーティング・システムを使用中であり、FileInput ノードを含むメッセージ・フローを作成したことを前提にしています。 他に以下のリソースが必要です。
  • FTP サーバーまたは SFTP サーバー。 以下のように設定された FTP サーバーまたは SFTP サーバーがあることを確認します。
    サーバー
    ftpserver.hursley.abc.com
    ポート
    21 (FTP 用) または 22 (SFTP 用)
    作業ディレクトリー
    /ftpfileinput
    ユーザー ID
    myuserid
    パスワード
    mypassword

    上記の値は、この例で使用するための値でしかありません。 他の値を使用する場合は、その値を記録して、タスク中に該当する値を設定できるようにしてください。

  • セキュリティー ID。 mqsisetdbparms コマンドを使用して、myidentity という、ユーザーおよびパスワードの詳細に合ったセキュリティー ID を定義します。
    FTP サーバーに接続する場合は、ファイル・ノードが ID 定義を検索できるように、セキュリティー ID に ftp:: 接頭部が必要です。 例えば、MyBroker というブローカーに対しては、次のようなコマンドを使用します。
        mqsisetdbparms MyBroker -n ftp::myidentity -u myuserid -p mypassword
    SFTP サーバーに接続する場合は、次の例のようにセキュリティー ID に sftp:: 接頭部が必要です。
        mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -p mypassword
    公開鍵認証を使用するように SFTP サーバーへの接続を構成することもできます。それには、パスワードの代わりに SSH ID ファイルとパスフレーズを指定します。以下に例を示します。
        mqsisetdbparms MyBroker -n sftp::myidentity -u myuserid -i identity_file -r passphrase

    SFTP サーバーへの接続の構成について詳しくは、SFTP を使用したファイルのセキュアな転送を参照してください。

  • 入力ファイル。 この例のシナリオをたどるために、次のような内容を持った test_input1.xml という名前の入力ファイルを作成します。
    <Message>test1</Message>
    <Message>testtwo</Message>
    <Message>testthree</Message>
    各行は、FTP サーバーまたは SFTP サーバーが置かれているシステムに適した行終了文字で終了します。 このファイルは、入力ディレクトリーには入れないで、FTP サーバーまたは SFTP サーバーのディレクトリー /ftpfileinput に入れてください。
  • メッセージ・セット。 この例は、XMLNSC パーサーを使用する xml1 という名のメッセージ・セットを使用します。 メッセージ・セット xml1 は、以下のフォームのメッセージをモデル化します。
    <Message>...</Message>

以下のステップを実行します。

  1. 必要なノード・プロパティーを FileInput ノード上で設定します。 以下の表は、設定する必要のある FileInput ノード・プロパティー、プロパティーが表示されるタブ、プロパティーが必須かどうか、および必要な値を要約しています。
    タブ プロパティー
    基本 入力ディレクトリー C:¥FileInput¥TestDir

    入力ディレクトリーが存在しない場合、ファイルを FTP または SFTP を介して処理している場合であっても、ファイルは全く処理されません。

    ファイル名またはパターン test_input1.xml
    正常処理時のアクション アーカイブ・サブディレクトリーに移動する
    重複するアーカイブ・ファイルを置き換える 選択されている
    入力メッセージの解析 メッセージ・ドメイン XMLNSC
    メッセージ・モデル xml1
    ポーリング ポーリング間隔 3
    再試行 ファイル失敗時のアクション タイム・スタンプを追加し、バックアウト・サブディレクトリーに移動する
    レコードとエレメント レコード検出 区切り
    区切り文字 DOS または UNIX の行終了
    区切り文字タイプ 後置
    FTP リモート転送 選択されている
    転送プロトコル FTP または SFTP
    リモート・サーバーおよびポート ftpserver.hursley.abc.com
    セキュリティー ID myidentity
    サーバー・ディレクトリー /ftpfileinput
    転送モード ASCII (FTP 用のみ)
    スキャン遅延 45
    FTP サーバーまたは SFTP サーバーのリソースに対して他の値を使用していた場合、その値を入力します。 ここで使用する設定は、メッセージ・フローの入力としてローカル・ファイルを使用するの例で使用したものと同一です。ただし、「リモート転送」プロパティーが選択されて、「FTP」タブ上にプロパティーがある点が異なります。 「リモート転送」プロパティーをクリアすると、ノードは、メッセージ・フローの入力としてローカル・ファイルを使用するの例の場合と同じ動作をします。「FTP」タブのプロパティーは設定されたままになりますが、無視されます。
  2. メッセージ・フローをブローカーにデプロイします。 パッケージ化およびデプロイを参照してください。
これらのステップを実行すると、以下のアクションが起きます。
  1. ファイル test_input1.xml が、FTP サーバーまたは SFTP サーバーのディレクトリー (/ftpfileinput) から、ローカル・ディレクトリー (C:¥FileInput¥TestDir) に転送されます。 このファイルは、FTP サーバーまたは SFTP サーバーのディレクトリーから削除されます。
  2. FileInput ノードは、「レコードとエレメント」タブのプロパティーで定義されているとおりに、DOS または UNIX の行終了で終了しているレコードを検出して、それぞれのレコードごとにメッセージを作成します。 このノードは、Out ターミナルに接続されているメッセージ・フローに以下の 3 つのメッセージを伝搬します。
    • メッセージ 1:
      <Message>test1</Message>
    • メッセージ 2:
      <Message>testtwo</Message>
    • メッセージ 3:
      <Message>testthree</Message>
  3. End of Data ターミナルにノードが接続されている場合、このファイル中の最後のレコードが処理された後、End of Data メッセージが伝搬されます。
  4. 処理が完了すると、ファイル test_input1.xmlmqsiarchive サブディレクトリー C:¥FileInput¥TestDir¥mqsiarchive に移動されます。 test_input1.xml という名前のファイルが mqsiarchive サブディレクトリー内に存在する場合、そのファイルは上書きされます。
  5. メッセージ・フローに障害が起きた場合、FileInput ノードのプロパティーに設定されている値に従って、再試行処理が試みられます。 このタスク例では、タイム・スタンプがファイル名に追加され、ファイルは mqsibackout ディレクトリーに移動されます。 その場合のファイルのパスは、C:¥FileInput¥TestDir¥mqsibackout¥20070928_150234_171021_test_input1.xml となります。

    FTP サイドでエラーが生じ、アクセスが拒否されたと報告された場合、0 バイトのファイルが作成され、mqsibackout ディレクトリーに移動されます。 失敗したすべての FTP 試行について、mqsibackout ディレクトリーに 0 バイトのファイルが作成されます。

「リモート転送」プロパティーを選択したので、45 秒の FTP スキャン遅延によって、3 秒間のポーリング間隔が指定変更されます。

詳しくは、ファイルをレコードに分離する方法の制御を参照してください。ここでは、FileInput ノードの「レコード検出」「区切り文字」、および「区切り文字タイプ」プロパティーに、他の値の組み合わせを指定した場合の結果について説明されています。

以下のサンプルも、このノードの使用方法を示します。

サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:00


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac55422_