FileOutput ノードを使用して、ファイルにメッセージを書き込みます。
メッセージ・フロー・トランザクションから 1 つ以上のメッセージを、ブローカーのファイル・システム内のファイルに書き込むことができます。 各メッセージは、ファイルへの書き込み時に、レコード という一連のバイトに変換されます。 ファイルの処理を完了し、指定した出力ディレクトリー、またはリモート FTP サーバーまたはリモート SFTP サーバー内のディレクトリーに配置するプロセスがトリガーされるまで、レコードは累積されます。 ノード上のプロパティーは、レコードをファイルに累積する方法と、終了時にそれらのファイルをどこに入れるかを指定します。
FileOutput ノードはパレットの「ファイル」ドロワーに入っていて、ワークベンチでは次のアイコンによって表されます。
FileOutput ノードは、一連の 1 つ以上のレコードとしてファイルを書き込みます。 各レコードは、ノード上の In ターミナルで受信された 1 つのメッセージから生成されます。
In ターミナルまたは Finish File ターミナルのどちらであっても、受信されたメッセージごとに、そのメッセージのエレメントを使用して、出力ディレクトリーと、書き込まれる (または終了される) ファイルの名前を変更することができます。 ノードでそのようなエレメントを指定できますが、デフォルトではこのエレメントは、「要求」 プロパティー・タブ上のローカル環境内のエレメントを識別します。
FileOutput ノードは、処理中および処理後に、出力ディレクトリーのサブディレクトリーを使用してファイルを保管します。 これらのサブディレクトリーすべてには接頭部 mqsi が前につき、mqsitransit (一時ディレクトリー) および mqsiarchive (アーカイブ・ディレクトリー) と呼ばれるサブディレクトリーを含みます。 レコードは、出力ディレクトリー内のファイルに直接累積されるのではなく、一時ディレクトリー内のファイルに累積されます。 ファイルが完成すると、ファイルは一時ディレクトリーから出力ディレクトリーに移動されます。 出力ディレクトリーに移動されるファイルと同じ名前のファイルが既にそこに存在する場合、出力ディレクトリーにある既存のファイルを削除する、アーカイブ・ディレクトリー (mqsiarchive) に移動する、または名前を変更してからアーカイブ・ディレクトリーへ移動する、のいずれかを選択できます。
FileOutput ノードが、ファイル処理の一環としてファイルをリモート FTPまたは SFTP サーバーに転送するように指定できます。 ファイルが正常に転送されると、そのファイルを、ローカル・ファイル・システムから削除するか、またはオプションで、残りのファイル処理の通常の実行に備えて保存しておくことができます。 このサーバーは、ノードの「リモート・サーバーおよびポート」プロパティーで識別されます。 このノードのプロパティーは、ローカル環境で値を設定することによりオーバーライドすることもできます。 また、ローカル環境を使用して、FTP 転送または SFTP 転送の前または終了後に実行するコマンドを指定することもできます。 詳しくは、FileOutput ノード上のリモート・サーバーに関するローカル環境のオーバーライドを参照してください。
ファイル転送オペレーションの際に、FileOutput は宛先ファイルを作成します。 ただし、宛先ファイルはファイル転送が完了する前でも読み取り可能です。 それで、ファイル転送が完了するまでは、リモート・アプリケーションが宛先ファイルを読み取らないようにしてください。
複数のレコードの書き込みでは、ノードの Finish File ターミナルでメッセージが受信されるまで、ファイル処理は発生しません。 Finish File ターミナルでメッセージを受け取ると、一時ディレクトリーから指定の出力ディレクトリーに (あるいはリモート FTP または SFTP ディレクトリーに) ファイルが移動されます。
一時ディレクトリーにファイルが存在しないときにファイル処理が開始しても、エラーではありません。
「レコードおよびエレメント」タブで「レコード定義」プロパティーを「レコードはファイル全体」に設定した場合、Finish File 処理で受信したメッセージは無視されます (ファイルは既に処理済みであるため)。
In ターミナルでメッセージが受信されてノードで正常に処理されるたびに、コピーが Out ターミナルに伝搬されてさらに処理されます (ターミナルが接続されている場合)。
Finish File ターミナルでメッセージが受信されてノードで正常に処理されるたびに、コピーが End of Data ターミナルに伝搬されてさらに処理されます (ターミナルが接続されている場合)。
エレメント名 | エレメント・データ・タイプ | 説明 |
---|---|---|
Directory | CHARACTER | ブローカーのファイル・システムで使用されるフォームの、出力ディレクトリーの絶対パス。 例えば、Windows システムでは、ディレクトリー・パスはドライブ名接頭部 (C: など) で始まります。 |
Name | CHARACTER | 出力ファイルの名前。 |
Action | CHARACTER | 指定できる値は以下のとおりです。
|
Timestamp | CHARACTER | ノードがこのファイルの処理を開始したときの、文字ストリング・フォームの日時。 この値は、「基本」タブの「ファイルが存在する場合のアクション」プロパティーに「既存のファイルのタイム・スタンプ、保存、および置換」と「既存のファイルへ付加」を設定した場合にアーカイブされるファイルの名前の接頭部になります。 |
いくつかのメッセージ・フローを同じファイルに書き込む可能性があるのは、フローの追加インスタンスがある場合か、または FileOutput ノードが入った複数のフローがある場合です。 FileOutput ノードでは、実行グループ内、および複数の実行グループ間でファイルに同時に書き込むことができるのは、1 つのインスタンスだけです。 レコードが書き込まれている間、実行グループ内の他のすべてのインスタンスは待機する必要があります。 インスタンスがアクセス権を取得する順序は、定義されていません。
ファイルが完成すると、最初にアクセス権限を得るインスタンスがそれを処理するため、他のインスタンスではそのファイルは検出されません。 一時ディレクトリー内でファイルを発見できないすべてのインスタンスでは、LocalEnvironment.WrittenDestination.File メッセージ・ツリーの Action エレメントが Finish に設定されます。
サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
Username: FtpTargetHostUsername@ProxyUserName@TargetFtpHostname
Password: TargetFtpUserPassword@ProxyUserPassword
別のエンコードが必要なプロキシーもあれば、外部構成が必要なプロキシー、またはファイル・ノードでは使用できないプロキシーもあります。FileOutput ノードのインスタンスをメッセージ・フローに入れると、JMSReply ノードを構成する必要があります。(詳しくは、メッセージ・フロー・ノードの構成を参照してください。) ノードのプロパティーが、「プロパティー」ビューに表示されます。 値を入力する必要のある (デフォルト値が定義されていないプロパティ) すべての必須プロパティーには、そのビュー内でアスタリスクのマークが付けられます。
FileOutput ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Finish File | ファイルの最終処理をトリガーするメッセージを受け入れる入力ターミナル。 |
Out | レコードの書き込みが正常に完了した場合、In ターミナルで受信されたメッセージは、このターミナルに伝搬されます。 Local Environment 内の状況情報を除いて、メッセージは未変更のままになります。 |
End of Data | ファイルが正常に処理された場合、Finish File ターミナルで受信されたメッセージは、このターミナルに伝搬されます。 |
Failure | メッセージが伝搬される際に障害が検出された場合に、メッセージがルーティングされる出力ターミナル。 |
以下の表は、指定したタブで設定できるノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | FileOutput | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
ディレクトリー | いいえ | はい | なし | FileOutput ノードがファイルを配置する出力ディレクトリーを指定します。 絶対または相対のどちらかのディレクトリー・パスとして、ディレクトリーを指定します。 ディレクトリー・パスを相対パスにすると、それは、環境変数 MQSI_FILENODES_ROOT_DIRECTORY に指定されているディレクトリーをベースとします。
以下に例を示します。
使用する出力ディレクトリー・パスは、現在のメッセージ内の値を設定することにより指定変更できます。 詳細については、「要求」タブ・プロパティーの項目を参照してください。 |
outputDirectory |
ファイル名またはパターン | いいえ | はい | なし | ファイル名のパターンを指定します。 このプロパティーによって、FileOutput ノードで作成されるファイルの名前が定義されます。 値は、特定のファイル名であるか、またはファイル名に一致する文字シーケンス (パターン) のいずれかです。 このプロパティー・フィールドでは、1 つのワイルドカード文字 (アスタリスク *) を使ったパターンのみを指定できます。 使用するファイル名は、次のようにして判別されます。
ファイル名は、ブローカーがアクセスできるファイル・システムに渡されます。またファイル名は、そのファイル・システムの規則に準拠していなければなりません。 例えば、Windows システムではファイル名の大/小文字は区別されませんが、UNIX システムでは大/小文字が区別されます。 |
outputFilename |
ファイルに書き込むためのモード | はい | いいえ | 一時ディレクトリーに段階的に書き込みます。 | ファイルを段階的に書き込む必要があるのか、または直接書き込むのかを指定します。 以下のオプションのいずれかを選択します。
|
|
ファイルが存在する場合のアクション | はい | いいえ | 既存ファイルの置換 | 完成したファイルをどのように処理するかを指定します。 以下のオプションのいずれかを選択します。
|
|
重複するアーカイブ・ファイルを置き換える | はい | いいえ | 選択されていない | 「ファイルが存在する場合のアクション」で「既存のファイルの保存および置換」または「既存のファイルのタイム・スタンプ、保存、および置換」を指定する場合、「重複するアーカイブ・ファイルを置き換える」チェック・ボックスを選択して、アーカイブ・ディレクトリーに移動するファイルによって、そこに既に存在する同じ名前のファイルを置き換えることを指定します。
デフォルトでは、このチェック・ボックスはクリアされています。 このチェック・ボックスを選択しない場合、アーカイブ・ディレクトリーに移動されるファイルと同じ名前のファイルが既にそこに存在するなら、例外が生成されて、新しいファイルは一時ディレクトリーの中に残ります。 |
FileOutput ノードの「要求」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
データのロケーション | はい | いいえ | $Body | 入力データのロケーションを指定します。
これは、出力ファイルに書き込むレコードを格納している入力メッセージ・ツリー内のロケーションです。 デフォルト値は $Body です。これは、メッセージ本体全体 ($InputRoot.Body) を意味します。 このプロパティーを指定するとき、それによって識別されるメッセージ・ツリー内のデータがモデル駆動型パーサー (MRM パーサーや XMLNSC パーサーなど) によって所有される場合には、以下の点を考慮してください。
|
|
要求ディレクトリー・プロパティーの場所 | はい | はい | $LocalEnvironment/Destination/File/Directory | 「基本」タブ上の「ディレクトリー」プロパティーを指定変更する値のロケーションを指定します。 ロケーションを指定しない場合、デフォルト値は $LocalEnvironment/Destination/File/Directory になります。 ロケーションを指定しても、エレメントが空であるかまたは欠落している場合、「ディレクトリー」プロパティーが使用されます。 エレメントはデータ型 CHARACTER を持ち、絶対または相対のどちらかのディレクトリー・パスです。 ブローカーが実行されるファイル・システムに準じたパスの分離文字 (「/」または「¥」) を使用します。 末尾のパス分離文字は無視されます。 相対ディレクトリー・パスは、MQSI_FILENODES_ROOT_DIRECTORY 環境変数の値がベースになります。 | requestDirectoryLocation |
要求ファイル名プロパティーの場所 | はい | はい | $LocalEnvironment/Destination/File/Name | 「基本」タブ上の「ファイル名またはパターン」プロパティーを指定変更する値のロケーションを指定します。 エレメントはデータ型 CHARACTER を持ち、明示的なファイル名です。 この値の場合、ワイルドカードの置換は起きません。メッセージがノードの In ターミナルまたは Finish File ターミナルで受信されたときにこのプロパティーがローカル環境にない場合、デフォルトで、「基本」タブの「ファイル名またはパターン」プロパティーを使用します。 | requestNameLocation |
FileOutput ノードの「レコード」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
レコード定義 | はい | いいえ | レコードはファイル全体 | レコードをどのように出力ファイル内に置くかを指定します。 以下のオプションのいずれかを選択します。
|
長さ | はい | いいえ | 80 | 「レコード定義」に「レコードは固定長データ」を指定した場合のレコードの長さ (バイト数) を指定します。 レコードがこの値より長い場合、例外が生成される原因になります。 この値は、1 バイトから 104857600 バイト (100 MB) まででなければなりません。 デフォルト値は 80 バイトです。 |
埋め込みバイト | はい | いいえ | X'20' | 「レコード定義」に「レコードは固定長データ」を指定した場合に、レコードがその長さより短ければ、「埋め込みバイト」プロパティを使用して、指定の長さに合わせてレコードに埋め込みを行うために使用するバイトを指定します。 この値は 2 桁の 16 進数字として指定します。 デフォルト値は X'20' です。 |
区切り文字 | はい | いいえ | ブローカー・システムの行終了 | 「レコード定義」に「レコードは区切り文字で区切られたデータ」が指定されている場合に使用される区切り文字を指定します。
以下のオプションのいずれかを選択します。
|
カスタム区切り文字 | いいえ | いいえ | なし | 「区切り文字」プロパティーに「カスタム区切り文字」が指定されている場合にレコードを区切るのに使用する区切り文字バイト・シーケンスを指定します。 16 進数字の偶数ストリングでこの値を指定します。 デフォルト値は X'0A' でストリングの最大長は 16 バイトです。 |
区切り文字タイプ | はい | いいえ | 後置 | 「レコード定義」プロパティを「レコードは区切り文字で区切られたデータ」に設定した場合は、「区切り文字タイプ」を使用して、区切り文字がどのようにレコードを分離するかを指定します。 以下のオプションのいずれかを選択します。
|
FileOutput ノードの「妥当性検査」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | 継承 | 妥当性検査を行うかどうかを指定します。 有効な値は以下のとおりです。
|
validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | 妥当性検査が失敗した場合の動作を指定します。
「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は以下のとおりです。
|
FileOutput ノードの「FTP」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
リモート転送 | いいえ | はい | 選択されていない | FTP サーバーまたは SFTP サーバーにファイルを転送するには、「リモート転送」を選択し、この表の他のプロパティーを設定します。 | fileFtp |
転送プロトコル | いいえ | はい | FTP | このプロパティーは、リモート転送に使用するプロトコルを指定します。 有効な値は以下のとおりです。
|
remoteTransferType |
リモート・サーバーおよびポート | いいえ | はい | なし | このプロパティーは、以下の以下のいずれかの値を持つことができます。
次の構文を使用して、使用する FTP サーバーまたは SFTP サーバーの IP アドレスとポート番号を指定します。
FTP を使用する場合にポート番号を指定しなければ、21 が使用されます。 SFTP を使用中にポート番号を指定しない場合、ポート番号 22 が想定されます。 ただし FtpServer 構成可能サービスが定義されている場合、その構成可能サービスの名前をこのフィールドに入力することができます。 構成可能サービス名を指定した場合、その構成可能サービスによって、その他のリモート転送プロパティーのいずれかまたはすべてを指定変更できます。 FtpServer 構成可能サービス定義と、このタブ上のプロパティーがどのように対話するかの詳細は、FtpServer 構成可能サービスを参照してください。
ローカル環境でサーバーの場所を設定することにより、このプロパティーをオーバーライドできます。 詳細については、FileOutput ノード上のリモート・サーバーに関するローカル環境のオーバーライドを参照してください。 |
fileFtpServer |
セキュリティー ID | いいえ | はい | なし | mqsisetdbparms コマンドを使用して定義されたセキュリティー ID の名前を指定します。 FTP サーバーまたは SFTP サーバーへのログオンに使用するユーザー ID およびパスワードは、この定義から取得します。 この定義の名前には、接頭部 ftp:: が付いている必要があります。 このプロパティーの値は、FtpServer 構成可能サービス・プロパティー securityIdentity の値 (設定されている場合) によって指定変更されます。 | fileFtpUser |
サーバー・ディレクトリー | いいえ | はい | "." | ファイルの転送先の FTP または SFTP サーバー上のディレクトリーを指定します。 デフォルト値は . (ピリオド) で、これはログオン後のデフォルト・ディレクトリーを意味します。 相対パスを指定すると、FTP または SFTP のログオン後のデフォルト・ディレクトリーに基づくディレクトリーになります。 パスの構文が、FTP または SFTP サーバー内のファイル・システム標準に準拠するよう気を付けてください。 このプロパティーの値は、FtpServer 構成可能サービスの remoteDirectory プロパティーの値 (設定されている場合) によって指定変更されます。 | fileFtpDirectory |
転送モード | いいえ | はい | バイナリー | ファイルの転送方法を指定します。 ファイル内容を変換しない場合は、「バイナリー」を選択します。
ファイルが ASCII として送信される場合は、「ASCII」 を選択します。 このプロパティーの値は、FtpServer 構成可能サービス・プロパティー transferMode の値 (設定されている場合) によって指定変更されます。 このプロパティーは、リモート転送用のプロトコルとして FTP が選択されている場合にのみ有効です。プロトコルに SFTP を指定すると、「転送モード」プロパティーは無視され、バイナリー・エンコードが使用されます。 |
|
リモート・ファイルが存在する場合のアクション | いいえ | いいえ | ファイルを置換します。 | ファイルを作成するか、または既存のファイルに追加するかを指定します。 以下のオプションのいずれかを選択します。
|
|
転送後のローカル・ファイルの保存 | いいえ | いいえ | 選択されていない | ファイル転送処理が完了した後に、ファイルのローカル・コピーを保存するには、「転送後のローカル・ファイルの保存」チェック・ボックスを選択します。 このチェック・ボックスを選択すると、ローカル・コピーは、「基本」タブでの指定どおりに、転送の完了後に他の出力ファイルと同様に処理されます。 チェック・ボックスがクリアされていると、ファイルは、正常に転送されても、ローカルで保存されません。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |