ファイル受信アダプタに関する設定
概要
受信ファイル・アダプタには以下の設定があります。
グループ | 設定 |
---|---|
基本設定 | [ファイルパス]、[ファイルスペック]、[アーカイブパス]、[ワークパス]、[呼び出し間隔] |
追加設定 | [サブディレクトリ・レベル]、[文字セット]、[タイムスタンプ追加]、[セマフォ指定]、[深刻なエラー]、[ヘッダ・カウント]、[完了を確認]、[ファイル・アクセス・タイムアウト] |
残りの設定はすべてのビジネス・サービスに共通しています。詳細は、"すべてのビジネス・サービスに含まれる設定" を参照してください。
[タイムスタンプ追加]
[アーカイブパス] と [ワークパス] のディレクトリ内のファイル名にタイム・スタンプを付加します。これにより、同じファイル名の繰り返し処理で発生する可能性のある名前の競合を避けることができます。
-
この値が空か 0 の場合は、タイム・スタンプが付加されません。
-
この設定が 1 の場合は、標準テンプレート '%f_%Q' が付加されます。
-
その他の可能性のある値は、"ファイル名に関するタイム・スタンプ指定" を参照してください。
[アーカイブパス]
ファイル内のデータの処理を完了した後に、アダプタが入力ファイルを格納するディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル InterSystems IRIS® Interoperability マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。この設定が指定されていない場合は、アダプタが ProcessInput() への呼び出しが復帰した後に入力ファイルを削除します。
プロダクションで入力ファイル内のデータを処理している最中にそのファイルが削除されないことを保証するために、[ArchivePath] と [WorkPath] を同じディレクトリに設定することをお勧めします。または、データ処理に、ビジネス・サービスから同期呼び出しのみを使用する方法があります。
呼び出し間隔
このアダプタの秒単位のポーリング間隔。これは、アダプタが指定された場所で入力ファイルをチェックする時間間隔です。
ポーリング時にアダプタがファイルを検出すると、アダプタはファイルをストリーム・オブジェクトにリンクし、ストリーム・オブジェクトを関連ビジネス・サービスに渡します。一度に複数のファイルを検出すると、アダプタはファイルが検出されなくなるまで、個々のファイルのビジネス・サービスに対して 1 つの要求を送信します。
ビジネス・サービスが各ファイルを同期で処理した場合、ファイルは順次処理されます。ビジネス・サービスが各ファイルをビジネス・プロセスまたはビジネス・オペレーションに非同期で送信した場合、ファイルは同時処理される場合があります。
有効なファイルをすべて処理し終わると、アダプタはポーリング間隔が経過してから、再度ファイルをチェックします。プロダクションが実行中であり、ビジネス・サービスが有効化され、アクティブになるようにスケジュールされている場合、このサイクルは常に継続されます。
入力ファイル間の [呼び出し間隔] 期間だけアダプタが遅れるように、ビジネス・サービス内にコールバックを実装できます。詳細は、"ビジネス・サービスの定義" を参照してください。
デフォルト [呼び出し間隔] は 5 秒です。最小値は 0.1 秒です。
Charset
入力ファイルの文字セットを指定します。InterSystems IRIS は、自動的に、文字をこの文字エンコーディングから変換します。この設定値は大文字と小文字が区別されません。Binary は、バイナリ・ファイル、新規行文字と改行文字が異なるデータ、または変更しないまま残す必要のあるデータに対して使用します。テキスト・ドキュメントを転送するときは、他の設定が便利な場合があります。選択肢は以下のとおりです。
-
Binary — バイナリ転送
-
Ascii — 文字エンコーディング変換を伴わない ASCII モード FTP 転送
-
Default — ローカル InterSystems IRIS サーバのデフォルトの文字エンコード
-
Latin1 — ISO Latin1 8 ビット・エンコード
-
ISO-8859-1 — ISO Latin1 8 ビット・エンコード
-
UTF-8 — Unicode 8 ビット・エンコード
-
UCS2 — Unicode 16 ビット・エンコード
-
UCS2-BE — Unicode 16 ビット・エンコード (ビッグ・エンディアン)
-
InterSystems IRIS に NLS (各国言語サポート) をインストールするための、国際文字エンコード規格に基づくその他のエイリアス。
ビジネス・サービス内の OnProcessInput() の実装と矛盾しない値を使用します。
-
Charset 設定に Binary 値が含まれている場合は、OnProcessInput() の pInput 引数が %FileBinaryStreamOpens in a new tab 型となり、バイトで構成されます。
-
そうでない場合は、pInput が %FileCharacterStreamOpens in a new tab 型となり、文字で構成されます。
文字セットおよび変換テーブルの詳細は、"変換テーブル" を参照してください。
%FileCharacterStreamOpens in a new tab クラスと %FileBinaryStreamOpens in a new tab クラスは、EnsLib.File.InboundAdapterOpens in a new tab などの製品 API での使用を除き、どちらも非推奨です。
セマフォ指定
セマフォ指定では、セマフォとして使用する関連付けられた 2 番目のファイルを同じディレクトリに作成することで、データ・ファイルの作成完了と読み取り準備の完了を示すことができるようになります。受信ファイル・アダプタは、セマフォ・ファイルが存在するまで待機した後、[完了を確認] の要件で指定されたその他の条件をチェックしてから、データ・ファイルを処理します。アダプタは、セマフォ・ファイルが存在することのみをテストし、セマフォ・ファイルの内容を読み取ることはありません。
[セマフォ指定] が空の文字列の場合、アダプタはセマフォ・ファイルを待機せずに、[完了を確認] の要件で指定された条件が成立すると即座にデータ・ファイルを処理します。
[セマフォ指定] 機能を使用する場合は、[完了を確認] フィールドを [なし] に設定することを検討します。
構文
[セマフォ指定] は、空文字列か、データ・ファイル名パターンとセマフォ・ファイル名パターンを関連付ける一連のペアにすることができます。ペアはセミコロンで区切ります。
DataFileSpec=SemaphoreFileSpec;DataFileSpec=SemaphoreFileSpec;...
DataFileSpec は、プレーンなファイル名か、ワイルドカード * (任意の文字に一致) を含むファイル名パターンです。同様に、SemaphoreFileSpec はプレーンなファイル名か、ワイルドカード * を含むファイル名パターンです (ただしこの場合、ワイルドカード * はピリオド以外のすべての文字に一致します)。注 :
-
指定された 1 つまたは複数のデータ・ファイルに関連付けられたセマフォ・ファイルは、そのファイルと同じディレクトリになければなりません。
-
DataFileSpec と SemaphoreFileSpec にディレクトリ名は含まれません。
-
DataFileSpec では、常に大文字と小文字が区別されます。
-
SemaphoreFileSpec は、オペレーティング・システムで大文字と小文字が区別される場合は大文字と小文字を区別し、そうでない場合は区別しません。
-
ペアは左から右に処理され、最初に一致したペアが使用されます。"受信ファイル・アダプタでのセマフォ仕様の使用法" を参照してください。
したがって、同じファイルと一致する複数の仕様を含める場合は、より限定的な仕様を指定してから、より一般化された仕様を指定する必要があります。
-
FileSpec が * でアダプタが構成されている場合、そのアダプタは、通常、ディレクトリ内にあるすべてのファイルをデータ・ファイルと見なします。ただし、[セマフォ指定] も指定される場合、アダプタは、ファイルをセマフォ・ファイルと認識し、そのファイルがデータ・ファイルとして扱われることはありません。
例えば、1 つのペアで構成される次のセマフォ指定について考えます。
ABC*.TXT=ABC*.SEM
この場合、ABCTest.SEM セマフォ・ファイルは、アダプタが ABCTest.TXT ファイルをいつ処理するかを制御し、ABCdata.SEM セマフォ・ファイルは、アダプタが ABCdata.txt ファイルをいつ処理するかを制御します。
最も単純な場合のセマフォ指定は、1 つの SemaphoreFileSpec のみで構成されます (ワイルドカードの有無は問いません)。つまり、セマフォ・ファイルの有無によって、アダプタがファイルを処理するかどうかが決まります。
パターンに一致しないファイル
[セマフォ指定] が指定され、指定のデータ・ファイルがいずれのパターンとも一致しない場合、アダプタはこのデータ・ファイルを処理しません。これが妥当でない場合は、どのファイルにも一致し、独自のセマフォ・ファイルを使用する最後のペアを指定します。例えば、次のセマフォ指定について考えます。
*.DAT=*.SEM; *.DOC=*.READY; *=SEM.LAST
SEM.LAST は、.DAT や .DOC で終了しないすべてのファイルのセマフォ・ファイルです。
受信ファイル・アダプタでのセマフォ指定の使用法
受信ファイル・アダプタは、各ポーリング・サイクル内で、構成されたディレクトリ (およびサブディレクトリ) で見つかったすべてのファイルを調べます。各ファイルに対して、以下を実行します。
-
アダプタはセマフォ指定を左から右に読み取り、DataFileSpec が指定のファイル名に一致する最初の指定を見つけます。これは、検索対象のセマフォ・ファイルの名前を示します。
-
アダプタは、調べるファイルと同じディレクトリでセマフォ・ファイルを検索します。
次に、以下の手順を実行します。
-
セマフォ・ファイルが見つからない場合、アダプタはそのファイルをスキップし、次のポーリング・サイクルまで待機する内部フラグを設定します。
-
セマフォ・ファイルが見つかった場合、アダプタはそのファイルを処理します。
-
アダプタは、すべてのデータ・ファイルを特定のポーリング・サイクルで処理し終わると、対応する全セマフォ・ファイルを削除します。
[深刻なエラー]
レコード・マップ・サービスにおいて、個々のレコードでの検証エラーなどのエラーが発生した場合に、システムによるメッセージの処理を停止するかどうかを指定します。アダプタを構成する際は、以下のいずれかのオプションを選択します。
-
Any — 既定値。InterSystems IRIS で個々のレコードの保存中にエラーが発生した場合、メッセージの処理を停止します。
-
ParseOnly — InterSystems IRIS で 1 つのレコードの保存中にエラーが発生した場合、エラーをログに記録し、そのレコードをスキップしてから、メッセージの解析を続行します。このログには、無効なレコードのストリーム内の位置が含まれます。また、[エラー時に警告] が有効になっている場合は、システムによってアラートが生成されます。
[ヘッダ・カウント]
レコード・マップ・サービスにおいて、受信ドキュメントで先頭行としてサービスが無視する行数を指定します。先頭行を無視することで、サービスは、列ヘッダが付いたレポートおよびコンマ区切り値 (CSV) ファイルを解析できるようになります。
[完了を確認]
ファイルの受領の完了を確認するための特別な手段を指定します。選択項目は、以下のとおりです。
リスト・オプション | 製数値 | 説明 |
---|---|---|
[なし] | 0 | ファイルを完全に受信したかどうかを確認するための特別な方法は行いません。 |
Size | 1 | [FilePath] ディレクトリ内のファイルの報告されたサイズが増加しなくなるまで待機します。ソース・アプリケーションの動きが遅いときは、このオプションは十分ではない場合があります。オペレーティング・システムによって [ファイルアクセスタイムアウト] 設定の期間に同じファイル・サイズが報告された場合に、ファイルの受信が完了したと見なされます。 |
Rename | 2 | オペレーティング・システムからファイルの名前を変更する許可があるまで、ファイルのデータ読み込みを続けます。 |
Readable | 4 | 読み込みモードでファイルを開くことが可能になった場合に、ファイルの受信が完了したと見なされます。 |
Writable | 8 | 書き込みモードでファイルを開くことが可能になった場合に、ファイルの受信が完了したと見なされます (テストとしてのみ。ファイルへの書き込みは行われません)。 |
各オプションの有効性は、オペレーティング・システムと、ファイルを [ファイルパス] ディレクトリに格納するプロセスの詳細によって異なります。
[ファイルアクセスタイムアウト]
システムがファイル受領の完了を確認する前に、ソース・アプリケーションからの情報を待機する時間 (秒単位)。詳細は、"[完了を確認]" を参照してください。
10 進数値を指定すると、最も近い整数に値が切り上げられます。既定値は 2 です。
File Path
ファイルの検索先ディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル InterSystems IRIS Interoperability マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。
ファイルスペック
取得するファイルのファイル名またはワイルドカードのファイル仕様です。ワイルドカード仕様では、ローカルの InterSystems IRIS Interoperability マシンのオペレーティング・システムに適した規則を使用します。
[サブディレクトリレベル]
ファイルを検索するディレクトリ下のサブディレクトリの階層数。
[ワークパス]
ファイル内のデータの処理中に、アダプタが入力ファイルを格納するディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル InterSystems IRIS Interoperability マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。この設定は、ファイル送信の繰り返しで同一ファイル名が使用される場合に便利です。[WorkPath] を指定しない場合、アダプタはファイルの処理中にファイルを移動しません。
プロダクションで入力ファイル内のデータを処理している最中にそのファイルが削除されないことを保証するために、[ArchivePath] と [WorkPath] を同じディレクトリに設定することをお勧めします。または、データ処理に、ビジネス・サービスから同期呼び出しのみを使用する方法があります。