ブローカーは FileInput、FTEInput、CDInput、および FileRead ノードを使用してファイルを読み取り、FileOutput、CDOutput、および FTEOutput ノードを使用してファイルを書き込みます。
FileInput、FileOutput、および FileRead ノードは、ブローカーのユーザー ID およびグループに割り当てられた権限を継承します。権限の設定方法およびファイル・アクセスへの影響の詳細については、ご使用のオペレーティング・システムの資料を参照してください。
FTEInput および FTEOutput ノードを使用して、WebSphere MQ File Transfer Edition ネットワーク上の宛先との間でファイルを受信または送信できます。
CDInput および CDOutput ノードを使用して、IBM® Sterling Connect:Direct® ネットワーク上の宛先との間でファイルを受信または送信できます。
ファイルまたはファイル内のレコードは、キュー内のメッセージに似ています。 ファイルを格納するディレクトリーは、メッセージ・キューに似ています。
FileInput ノードでは、ファイルから読み取ったメッセージが処理されます。 FileInput ノードは、(ブローカーに接続されたファイル・システム内の) 指定した入力ディレクトリーで、指定の基準に一致するファイルを検索します。 ノードはまた、入力ディレクトリーのサブディレクトリーを再帰的に検索することもできます。 基準に合うファイルは、存続期間の順番に処理されます。すなわち、最も古いファイルが、ディレクトリー構造内のどこにあるかに関わらず、最初に処理されます。 オプションとして、ローカル・ディレクトリーをスキャンする場合は常に、リモート FTP サーバーまたはリモート SFTP サーバーからそのディレクトリーにファイルを移動することができます。 必要なファイルを検索するには、明示的にファイル名を指定するか、ワイルドカード文字を含むファイル名パターンを指定します。 ファイルがロックされている場合、ディレクトリー・スキャンの間、そのファイルは無視されます。 ファイル除外パターンを指定することにより、ファイルが読み取られないようにすることもできます。 ファイルが処理されるか無視されるかは第 1 にファイル名またはパターンにより決定され、第 2 にファイル除外パターンにより決定されます。
FileInput ノードは、入力ディレクトリーに mqsitransitin サブディレクトリーを作成します。 mqsitransitin サブディレクトリーは、入力ファイルの処理中にそれを保留にしてロックします。 ブローカーはファイルを読み取り、ファイルの内容を使って 1 つ以上のメッセージを伝搬します。
この入力ディレクトリー内でファイルを処理する実行グループが除去された場合、mqsitransitin サブディレクトリーを調べて、一部だけ処理されたファイルや未処理のファイルがないかを確認してください。 そのようなファイルがあれば、それを入力ディレクトリーに戻し、実行グループ UUID 接頭部をファイル名から削除することにより、異なる実行グループによる処理を可能にします。 mqsitransitin サブディレクトリーの詳細については、複数のファイル・ノードが同じディレクトリー内のファイルへのアクセスを共有する方法を参照してください。
ファイルが正常に処理されると、ファイル・システムから削除されるか、指定した (ローカル) ディレクトリーのアーカイブ・サブディレクトリーに移動されます。
ファイルの最後のレコードの処理が正常に完了したときに、FileInput ノードの End of Data ターミナルがメッセージ・フローに接続されている場合は、End of Data メッセージが End of Data ターミナルに伝搬されます。 End of Data メッセージは、空の BLOB メッセージと LocalEnvironment.File 構造で構成され、明示的なフローの終わりの処理をメッセージ・フロー中の別の部分で実行できるようにします。
ファイルから伝搬された 1 つ以上のメッセージを、任意のメッセージ・フローおよび出力ノードへの入力として使用することができます。 ファイルからメッセージを受け取ってから、サポートされている任意のトランスポートを使用してブローカーに接続するクライアントのために、メッセージを生成するメッセージ・フローを作成することができます。
メッセージがファイルから伝搬されるたびに、FileInput ノードは、そのファイルに関する情報を LocalEnvironment.File メッセージ・ツリー内のファイルに保管します。 そのような情報には、処理されるファイル内のメッセージのレコードのオフセットや、そのファイル内のレコード番号などが含まれます。 それに加えて、ファイル名パターン中でワイルドカードが使用されている場合、ファイル名内の一致した文字は、ローカル環境ツリーの WildcardMatch エレメントに入れられます。
ファイルがバックアウトされる場合、または処理が失敗したためファイルが mqsitransitin サブディレクトリーに残されている場合は、ファイル名から実行グループ UUID 接頭部を削除してから入力ディレクトリーに戻します。 処理は自動的に再試行され、ファイルの最初のレコードから開始されます。
FTEInput ノードは、WebSphere MQ File Transfer Edition ネットワークからファイルを受け取ります。 ブローカーはファイルを読み取り、ファイルの内容を使って 1 つ以上のメッセージを伝搬します。 FTEInput ノードがファイルを処理すると、そのファイルは削除されます。 FTEInput ノードがローカル環境で提供する情報の詳細については、ファイル・ノードでのローカル環境変数の使用を参照してください。
CDInput ノードは、IBM Sterling Connect:Direct ネットワークからファイルを受け取ります。 ブローカーはファイルを読み取り、ファイルの内容を使って 1 つ以上のメッセージを伝搬します。 CDInput ノードがファイルを処理すると、そのファイルは削除されます。 CDInput ノードがローカル環境で提供する情報の詳細については、ファイル・ノードでのローカル環境変数の使用を参照してください。
FileRead ノードは、ファイル全体を、または、1 つの指名されたレコードを読み取ることができます。 FileRead ノードの一般的な用途とは、ファイルの内容に基づいてメッセージを経路指定する、または拡充することです。 メッセージ・フローを作成する際に、読み取るファイルの名前と場所を指定できます。 これらの値は、メッセージの内容に基づいて実行時にオーバーライドできます。 FileRead ノードは、メッセージ・フローの途中からファイルを読み取ります。
FileRead ノードは、既存の FileInput ノードと FileOutput ノードを補完する役割を果たします。
FileRead ノードは読み取り中のファイルをロックしますが、ファイルを読み取る目的でサブディレクトリーへ移動することはありません。FileInput ノードと同様、ファイルを完全に読み取るか、レコードに分離することができます。 FileRead ノードが処理したファイルは、削除またはアーカイブするか、あるいはそのままにしておくことができます。
FileOutput ノード、CDOutput ノード、 および FTEOutput ノードは、ブローカーのファイル・システム内のファイルにメッセージを書き込みます。 ノードの In ターミナルでメッセージが受信されると、そのノードは、1 つ以上の一連のレコードの形式でファイルを作成して書き込みます。 受信した各メッセージごとに、レコードが 1 つずつファイルに書き込まれます。 そのファイルの名前は、ノード内のファイル名パターンで指定するか、または、ノードに指定したかメッセージから派生した明示的なファイル名で指定します。
オプションとして、リモート FTP サーバーまたはリモート SFTP サーバー上のディレクトリーに、このファイルを移動することもできます。 このサーバーは、ノードの「リモート・サーバーおよびポート」プロパティーで識別されます。 このノードのプロパティーは、ローカル環境で値を設定することによりオーバーライドすることもできます (FileOutput ノード上のリモート・サーバーに関するローカル環境のオーバーライドを参照してください)。
出力ノードがファイルから 1 つのレコード (「ファイル全体」) を作成すると、Finish File ターミナルにメッセージが伝搬されなくても、そのファイルはすぐに出力ディレクトリーに移動されます。 そのような場合、ノードの Finish File ターミナルに送信されたメッセージは、どのファイルに対しても効力を持ちませんが、そのメッセージは、End of Data ターミナルに接続されたメッセージ・フローにやはり伝搬されます。
FTP タブ上で「ローカル・ファイルの保存」と「一時ディレクトリーに段階的に書き込みます」が両方とも選択されていると、Finish File アクションで「ファイルが存在する場合のアクション」が発生します。
FileOutput ノードは、出力ディレクトリーまたは mqsitransit ディレクトリーにファイルを作成します。 FTP タブで「リモート・ファイルが存在する場合のアクション」が「追加」に設定されている場合、Finish File アクションが発生すると、FTP Append 動詞を使用してファイルがリモート・マシンに転送されます。 データはリモート・ファイルの末尾に追加されるか、またはファイルが存在しない場合はファイルが作成されます。