FileRead ノードを使用して、メッセージ・フローから 1 つのレコード、またはファイルの内容全体を読み取ります。
このトピックには、以下のセクションが含まれています。
FileRead ノードを使用すると、メッセージ・フローの中から 1 つのレコード、 またはファイルの内容全体を読み取ることができます。 ファイルの内容に基づくメッセージの経路指定および拡充を参照してください。 FileRead ノードは、 メッセージ・フローの開始からファイルの読み取りを行う FileInput ノードに類似していますが、着信メッセージによって駆動されてファイルを読み取る点が異なります。FileInput ノードではファイル内の各レコードを順に伝搬しますが、対照的に FileRead ノードでは、ファイル全体またはファイルの一部を伝搬するように構成することができます。
FileRead ノードはパレットの「ファイル」ドロワーに入っていて、WebSphere® Message Broker Toolkit 内では次のアイコンによって表されます。
WebSphere Message Broker フィックスパックで使用可能になる機能を有効にするには、mqsichangebroker コマンドで -f パラメーターを使用します。 詳しくは、mqsichangebroker コマンドを参照してください。
組み込みパーサーを使用することで、FileRead ノードは、ファイルの内容を解析して、メッセージ・ツリーとしてその内容を伝搬できます。 ノードは、FileInput ノードとまったく同じ方法で、この機能をサポートするパーサーにデータを流します。
このノードのメイン・プロパティーは、ファイルの読み取り先のファイルとディレクトリーを指定します。 ファイル名は、ワイルドカードを含むことができるパターンとして指定されます。 ローカル環境のフィールドを使用することで、ディレクトリーとファイル・パターンの両方をオーバーライドできます。
FileRead ノードの入力ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Finish file in | データを読み取らずに、ファイル終了アクションの実行要求を受け入れる入力ターミナル。 Finish File In ターミナルでメッセージが受信されると、FileRead ノードは「アクション」プロパティーで指定された処理を開始します。 Finish File In ターミナルでメッセージが受信されても、アクションが実行されるまでデータは読み取られません。 |
FileRead ノードの出力ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
Failure | メッセージが伝搬される際に障害が検出された場合に、メッセージがルーティングされる出力ターミナル。 |
Out | 外部リソースからメッセージが正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 入力ノード内でエラーが起こらなかった場合、 外部リソースから受信されるメッセージは常にこの Out ターミナルにまず送信されます。 |
No match | ファイル・システムにファイルが存在しない、またはファイルは存在するが、
フィルター式と一致するレコードが見つからない場合、No match ターミナルで受信されたメッセージは、このターミナルに伝搬されます。 ターミナルが接続していない場合、メッセージは使用されません。 |
Finish file out | Finish file in ターミナルで受け取るメッセージは、 内容が変更されずに Finish file out ターミナルに伝搬されますが、 ローカル環境はノードが実行したアクションの詳細によって更新されます。 |
以下の表は、指定したタブで設定できるノード・プロパティーについて説明しています。 M の見出しの列では、プロパティーが必須 かどうか (デフォルトが定義されていない場合に値を入力することが必要かどうか) を示します (必須であれば、ツールキットでアスタリスクのマークが付きます)。 C の見出しの列では、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
ファイルの内容がフローに正常に伝搬されると、そのファイルはファイル・システムから削除されます。 読み取りノードがファイルからデータの読み取りを開始すると、その他のファイル・ノードはそのファイルにアクセスできなくなります。 パターンと一致するファイルが存在しない場合、 元のメッセージが「No match」ターミナルに伝搬されます。 ターミナルが接続されていない場合には、例外がスローされます。
処理の最後では、ファイルが削除されないようにノードを構成することができます。 このモードの場合、同じ参照専用モードで稼働しているその他のすべてのファイル読み取りノードも、ファイルにアクセスできます。
FileRead の「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | FileRead | ノードの名前。 |
詳細説明 | いいえ | いいえ | なし | メッセージ・フロー内のノードの目的を説明するテキスト |
簡略説明 | いいえ | いいえ | なし | ノードの簡単な説明 |
FileRead の「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
入力ディレクトリー | いいえ | はい | なし | ブローカーのファイル・システムで使用されるフォームの、入力ディレクトリーの絶対パス。 例えば、Windows システムでは、ディレクトリー・パスはドライブ名接頭部 (C: など) で始まります。 あるいは、パスをファイル・ノードのルート・ディレクトリー (ファイルの入出力のノードに使用するのと同じ環境変数で指定変更可能) から見た相対パスにできます。 |
inputDirectory |
ファイル名またはパターン | いいえ | はい | * | ファイル名であるか、ファイル名に一致する文字シーケンス (パターン) です。 パターンには、以下のワイルドカード文字を少なくとも 1 つ組み込みます。
複数ファイルがパターンと一致する場合は、例外がスローされます。 このフィールドの入力ノードからファイル名の一部を使用する場合は、「環境ワイルドカードの使用」 オプションを選択します。 |
filenamePattern |
代替ワイルドカード・マッチング | いいえ | いいえ | False | このオプションを選択すると、ファイル・パターンは正規表現ではなくなります。 代わりに、1 つの * だけを含む必要があります。 * は $LocalEnvironment/Wildcard/WildcardMatch フィールドによって置き換えられます。 通常、この位置には FileInput ノードなど、前のノードが挿入されます。 | substituteWildcardMatch |
アクション | はい | いいえ | アクションなし | ファイルの終わりに到達したか、またはメッセージが Finish file in ターミナルで受け取られた後に、
ファイルに対して実行されるアクション。 このアクションは、以下のいずれかの状況で生じます。
デフォルトでは、「アーカイブ」への移動を選択した場合にファイルは mqsiarchive サブディレクトリーに移動しますが、 このデフォルトはローカル環境変数を設定することによってオーバーライドできます。 アーカイブ・ファイル名のローカル環境オーバーライドが設定されている場合、 ノードのファイル終了アクションを「タイム・スタンプ付きのアーカイブ」に設定すると、 ファイル名は timestamp_nameYouSpecified となります。 timestamp はファイルがアーカイブされた日時、 nameYouSpecified はファイルに指定する任意の名前です。 アーカイブ名のローカル環境オーバーライドが設定されている場合、 ノードのファイル終了アクションを「削除」に設定すると、ファイルは削除されます。 アーカイブ名のローカル環境オーバーライドが設定されている場合、 ノードのファイル終了アクションを「アクションなし」に設定すると、ファイルに対してアクションは適用されません。 |
|
重複するアーカイブを置き換える | はい | いいえ | False | デフォルトでは、ファイルがアーカイブされるときに同名のファイルが存在するとエラーが生じます。 エラーを無視してアーカイブ・ファイルを置き換えるには、このプロパティーを true に設定します。 |
FileRead の「要求」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
要求ディレクトリー・プロパティーの場所 | いいえ | いいえ | $LocalEnvironment/Destination/File/Directory | 入力ディレクトリーの名前があるメッセージ・エレメント・ロケーション。 | |
要求ファイル名プロパティーの場所 | いいえ | いいえ | $LocalEnvironment/Destination/File/Name | 入力ファイル・パターンの名前を含むメッセージ・エレメントの場所。 | |
オフセット・プロパティー・ロケーション | いいえ | いいえ | $LocalEnvironment/Destination/File/Offset | レコード検索の開始位置となるオフセットを入れる、メッセージ・エレメントの場所。 | |
長さプロパティーのロケーション | いいえ | いいえ | $LocalEnvironment/Destination/File/Length | 固定長のレコード検出を使用する場合、読み取るレコードの長さを含むメッセージ・エレメントの場所。 |
FileRead の「結果」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
結果データのロケーション | はい | いいえ | $ResultRoot | 出力メッセージの「出力データのロケーション」フィールドにコピーする、ファイルから取り出したメッセージ内のロケーション。 結果メッセージと着信メッセージの結合を参照してください。 |
|
出力データのロケーション | はい | いいえ | $OutputRoot | ファイルから読み取ったレコードのコピー先になる出力メッセージ内のロケーション。 出力データのロケーションにコピーするレコードの部分は、結果データのロケーションで定義されます。 デフォルトでは、レコード全体がコピーされます。 結果メッセージと着信メッセージの結合を参照してください。 |
|
ローカル環境のコピー | いいえ | いいえ | 選択されている | このプロパティーは、ローカル環境が出力メッセージにコピーされるかどうかを指定します。
|
|
レコード選択式 | いいえ | いいえ | true() | ファイルから正しいレコードを選択するために使用される式。 True に評価されるレコードが見つかるまでファイル内の各レコードについて式が評価されます。 見つかったレコードは、Out ターミナルに伝搬されます。 この式では、ブール値を返す任意の有効な XPath 式を設定できます。 「レコード検出」オプションに「ファイル全体」が選択された場合、 この式は使用されません。 以下の相関名が、式で使用するための有効範囲内にあります。
|
FileRead の「入力メッセージの構文解析」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | 着信メッセージの構文解析に使用されるドメイン。 | ||
メッセージ・セット | いいえ | いいえ | 着信メッセージが定義されているメッセージ・セットの名前または ID。 このプロパティーを設定してから、プロジェクトの依存関係を更新してこのメッセージ・セットの参照を削除すると、警告が発行されます。 「メッセージ・セット」プロパティーを更新するか、このメッセージ・セット・プロジェクトへの参照を復元してください。 |
||
メッセージ・タイプ | いいえ | いいえ | 着信メッセージの名前。 | ||
メッセージ形式 | いいえ | いいえ | 着信メッセージの物理フォーマットの名前。 | ||
メッセージ・コード化文字セット ID | いいえ | はい | ブローカー・システム・デフォルト | 読み取られるファイルのバイトを解釈するのに使用されるコード化文字セットの ID。 | messageCodedCharSetIdProperty |
メッセージ・エンコード | いいえ | はい | ブローカー・システム指定 | 読み取られるファイルのバイトを解釈するのに使用される数字およびラージ文字のエンコード・スキーム。 有効な値は、「ブローカー・システム指定」または数値のエンコード値です。 エンコードの詳細については、データ変換を参照してください。 | messageEncodingProperty |
FileRead の「パーサー・オプション」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、入力メッセージを構文解析する時を制御します。 有効な値は以下のとおりです。
このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。 |
XML スキーマ・データ・タイプを使用してツリーを構築する | いいえ | いいえ | 選択されていない | このプロパティーは、メッセージ・ツリー内の構文エレメントが、XML スキーマから取得されたデータ・タイプを持つかどうかを制御します。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定すると、入力 MQRFH2 ヘッダーまたは「入力メッセージの構文解析」プロパティー「メッセージ・ドメイン」が XMLNS の場合、 出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
不透明エレメント | いいえ | いいえ | ブランク | XMLNSC パーサーによって不透明解析される入力メッセージ内のエレメントのリストを指定するときに、このプロパティーを使用します。 不透明解析が実行されるのは、妥当性検査が使用不可に設定されている場合のみ (つまり、「妥当性検査」が「なし」の場合) です。妥当性検査が使用可能な場合、「不透明エレメント」で指定される項目は無視されます。 |
FileRead の「レコードおよびエレメント」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
レコード検出 | はい | いいえ | ファイル全体 | 入力ファイル内のレコードを特定するために使用される仕組み。 有効なオプションは、以下のとおりです。
|
長さ | はい | いいえ | 80 | レコード検出に「固定長」が選択されたときの各レコードのバイト単位の長さ。 |
区切り文字 | はい | いいえ | DOS または UNIX の行終了 | 「区切り」レコード検出が選択されたときに、各レコードを分離または終了する区切り文字バイトのタイプ。 有効なオプションは、以下のとおりです。
|
カスタム区切り文字 | いいえ | はい | 「区切り」レコード検出および「カスタム区切り文字」が選択されたときの、16 進数で表される区切り文字バイト。 「区切り文字」プロパティーを「カスタム区切り文字」に設定した場合のみ、このプロパティーは必須です。 | |
区切り文字タイプ | はい | いいえ | 後置 | 「区切り」レコード検出が選択されたときの区切り文字の位置。 有効なオプションは、以下のとおりです。
|
FileRead ノードの「妥当性検査」プロパティーについては、次の表に説明されています。これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 | mqsiapplybaroverride コマンド・プロパティー |
---|---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は以下のとおりです。
|
validateMaster |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 有効な値は以下のとおりです。
|