Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ファイル受信アダプタに関する設定

ファイル受信アダプタ EnsLib.File.InboundAdapterOpens in a new tab の設定に関する参照情報を提供します。

概要

受信ファイル・アダプタには以下の設定があります。

グループ 設定
基本設定 [ファイルパス][ファイルスペック][アーカイブパス][ワークパス][呼び出し間隔]
追加設定 [サブディレクトリレベル][文字セット][タイムスタンプ追加][セマフォ仕様][完了を確認][ファイルアクセスタイムアウト]

残りの設定はすべてのビジネス・サービスに共通しています。詳細は、"Ensemble プロダクションの構成" の “すべてのビジネス・サービスに含まれる設定” を参照してください。

[タイムスタンプ追加]

[アーカイブパス][ワークパス] のディレクトリ内のファイル名にタイム・スタンプを付加します。これにより、同じファイル名の繰り返し処理で発生する可能性のある名前の競合を避けることができます。

  • この値が空か 0 の場合は、タイム・スタンプが付加されません。

  • この設定が 1 の場合は、標準テンプレート '%f_%Q' が付加されます。

  • その他の可能性のある値は、"Ensemble プロダクションの構成" の “ファイル名に関するタイム・スタンプ指定” を参照してください。

[アーカイブパス]

ファイル内のデータの処理を完了した後に、アダプタが入力ファイルを格納するディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル Ensemble マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。この設定が指定されていない場合は、アダプタが ProcessInput() への呼び出しが復帰した後に入力ファイルを削除します。

プロダクションで入力ファイル内のデータを処理している最中にそのファイルが削除されないことを保証するために、[ArchivePath][WorkPath] を同じディレクトリに設定することをお勧めします。または、データ処理に、ビジネス・サービスから同期呼び出しのみを使用する方法があります。

呼び出し間隔

このアダプタの秒単位のポーリング間隔。これは、アダプタが指定された場所で入力ファイルをチェックする時間間隔です。

ポーリング時にアダプタがファイルを検出すると、アダプタはファイルをストリーム・オブジェクトにリンクし、ストリーム・オブジェクトを関連ビジネス・サービスに渡します。一度に複数のファイルを検出すると、アダプタはファイルが検出されなくなるまで、個々のファイルのビジネス・サービスに対して 1 つの要求を送信します。

ビジネス・サービスが各ファイルを同期で処理した場合、ファイルは順次処理されます。ビジネス・サービスが各ファイルをビジネス・プロセスまたはビジネス・オペレーションに非同期で送信した場合、ファイルは同時処理される場合があります。

有効なファイルをすべて処理し終わると、アダプタはポーリング間隔が経過してから、再度ファイルをチェックします。プロダクションが実行中であり、ビジネス・サービスが有効化され、アクティブになるようにスケジュールされている場合、このサイクルは常に継続されます。

入力ファイル間の [呼び出し間隔] 期間だけアダプタが遅れるように、ビジネス・サービス内にコールバックを実装できます。詳細は、"Ensemble プロダクションの開発" の “ビジネス・サービスの定義” を参照してください。

デフォルト [呼び出し間隔] は 5 秒です。最小値は 0.1 秒です。

Charset

入力ファイルの文字セットを指定します。Ensemble は、自動的に、文字をこの文字エンコーディングから変換します。この設定値は大文字と小文字が区別されません。Binary は、バイナリ・ファイル、新規行文字と改行文字が異なるデータ、または、HL7 バージョン 2 や EDI メッセージのように変更しないまま残す必要のあるデータに対して使用します。テキスト・ドキュメントを転送するときは、他の設定が便利な場合があります。選択肢は以下のとおりです。

  • Binary — バイナリ転送

  • Ascii — 文字エンコード変換以外の Ascii モードの FTP 転送

  • Default — ローカル Ensemble サーバのデフォルトの文字エンコード

  • Latin1 — ISO Latin1 8 ビット・エンコード

  • ISO-8859-1 — ISO Latin1 8 ビット・エンコード

  • UTF-8 — Unicode 8 ビット・エンコード

  • UCS2 — Unicode 16 ビット・エンコード

  • UCS2-BE — Unicode 16 ビット・エンコード (ビッグ・エンディアン)

  • Ensemble に NLS (各国言語サポート) をインストールするための、国際文字エンコード規格に基づくその他のエイリアス

ビジネス・サービス内の OnProcessInput() の実装と矛盾しない値を使用します。

Caché 内の文字変換に関する背景情報は、"Caché プログラミング入門ガイド" の “ローカリゼーション・サポート” を参照してください。

セマフォ仕様

セマフォ仕様では、セマフォとして使用する 2 番目のファイルを作成することで、データ・ファイルの作成完了と読み取り準備の完了を示すことができるようになります。受信ファイル・アダプタは、セマフォ・ファイルが存在するまで待機した後、[完了を確認] の要件で指定されたその他の条件をチェックしてから、データ・ファイルを処理します。これにより、データ・ファイルを作成するアプリケーションでは、データ・ファイルの完了までアダプタがそのファイルの処理をしないように待機させることができます。アダプタは、セマフォ・ファイルが存在することのみをテストし、セマフォ・ファイルの内容を読み取ることはありません。

セマフォ仕様が空の文字列の場合、アダプタはセマフォ・ファイルを待機せずに、[完了を確認] の要件で指定された条件が成立すると即座にデータ・ファイルを処理します。セマフォ・ファイルを使用して、アダプタがデータ・ファイルをいつ処理するかを制御する場合は、[完了を確認] フィールドを [なし] に設定することを検討してください。

セマフォ仕様では、データ・ファイルごとに個別のセマフォ・ファイルを指定できます。また、1 つのセマフォ・ファイルで複数のデータ・ファイルを制御することもできます。セマフォ・ファイルとデータ・ファイルのペアにワイルドカードを使用することができます。さらに一連のパターン・マッチング・セマフォ・ファイルをデータ・ファイルに指定することができます。アダプタは、常にデータ・ファイルと同じディレクトリで一致するセマフォ・ファイルを検索します。アダプタがサブディレクトリのデータ・ファイルを検索する場合、セマフォ・ファイルは対応するデータ・ファイルと同じサブディレクトリのレベルに存在する必要があります。

セマフォ仕様を使用する標準的な形式は次のとおりです。

[DataFileSpec=] SemaphoreFileSpec [;[DataFileSpec=] SemaphoreFileSpec]...

例えば、次のセマフォ仕様があるとします。

ABC*.TXT=ABC*.SEM

ABCTest.SEM セマフォ・ファイルは、アダプタが ABCTest.TXT ファイルをいつ処理するかを制御し、ABCdata.SEM セマフォ・ファイルは、アダプタが ABCdata.txt ファイルをいつ処理するかを制御することを意味します。

Note:

セマフォ仕様では、* (アスタリスク) はドット以外のすべての文字に対応します。ファイル仕様では、アスタリスクはドットを含むすべての文字に対応します。

1 つのセマフォ・ファイルで複数のデータ・ファイルを制御できます。例えば、次のセマフォ仕様があるとします。

*.DAT=DATA.SEM

DATA.SEM セマフォ・ファイルは、同じディレクトリ内のすべての *.DAT ファイルについてアダプタがいつ処理するかを制御します。アダプタがデータ・ファイルと対応するセマフォ・ファイルを検索するとき、ポーリングの間隔ですべてのデータ・ファイルをループします。上のセマフォ仕様の場合、ABC.DAT ファイルの DATA.SEM から検索を開始し、検出できない場合は、別のファイルのセマフォ・ファイルの検索を続けます。このプロセスで XYZ.DAT の一致を検索していたときに DATA.SEM が作成された場合には、この対応するセマフォ・ファイルが検出されます。ただし、アダプタは XYZ.DAT の処理を次のポーリングまで延期します。これは前のデータ・ファイル ABC.DAT が同じセマフォ・ファイルを待機していたためです。

複数のペアを指定する場合は、それらを ; (セミコロン) で区切ります。例えば、次のセマフォ仕様があるとします。

*.TXT=*.SEM;*.DAT=*.READY

セマフォ・ファイル MyData.SEM は、アダプタが MyData.TXT をいつ処理するかを制御しますが、セマフォ・ファイル MyData.READY は、アダプタが MyFile.DAT をいつ処理するかを制御します。

アダプタは、セマフォ仕様を左から右に読み取って、各データ・ファイルに対応するセマフォ・ファイルを検出します。対応するセマフォ・ファイルを特定すると、そのファイルのセマフォ仕様の読み取りを停止します。例えば、次のセマフォ仕様があるとします。

VIData.DAT=Special.SEM; *.DAT=*.SEM

アダプタは、VIData.DAT を処理する前にセマフォ・ファイル Special.SEM を検索しますが、VIData.SEMVIData.DAT のセマフォ・ファイルと見なされません。stuff.SEM は、stuff.DAT のセマフォ・ファイルと見なされます。これは stuff.DAT が以前の仕様と一致しなかったためです。したがって、同じファイルと一致する複数の仕様を含める場合は、より限定的な仕様を指定してから、より一般化された仕様を指定する必要があります。

データ・ファイルのターゲット・パターンは大小文字が区別され、セマフォ・パターンの大小文字の区別はオペレーティング・システムに依存します。つまり、*.TXT=*.SEM は、大文字の .TXT で終わるターゲット・ファイルのみに適用されますが、オペレーティング・システムは *.SEM*.sem を区別できない場合があります。オペレーティング・システムで大小文字が区別されない場合、アダプタは、大小文字の任意の組み合わせで終わる *.SEM*.sem のセマフォ・ファイルを同等に処理しますが、それらは名前が *.TXT のデータ・ファイルのみに対してセマフォとして使用されます。セマフォ・ファイルでは大小文字を区別できませんが、データ・ファイルでは区別が可能です。

1 つのファイル仕様のみを指定し、= (等号) 記号を省略すると、アダプタがこれを全データ・ファイルのセマフォ仕様として扱います。例えば、次のセマフォ仕様があるとします。

*.SEM

これは、1 つのワイルドカードを = (等号) 記号の左側に指定した場合と等価です。

*=*.SEM

この場合、セマフォ・ファイル MyFile.SEM はデータ・ファイル MyFile.txt を制御し、セマフォ・ファイル BigData.SEM はデータ・ファイル BigData.DAT を制御します。

セマフォ仕様でワイルドカードが使用されていない場合、その仕様はセマフォ・ファイルの完全な fileSpec です。例えば、次のセマフォ仕様があるとします。

*.DAT=DataDone.SEM

この場合、DataDone.SEM セマフォ・ファイルは、アダプタが .DAT ファイル拡張子を持つデータ・ファイルをいつ読み取るかを制御します。

セマフォ仕様が指定され、データ・ファイルがいずれのパターンとも一致しない場合、対応するセマフォ・ファイルは存在せず、アダプタはこのデータ・ファイルを処理しません。この状況は、セマフォ仕様で最後のデータ・ファイルとして * を指定することで回避できます。例えば、次のセマフォ仕様があるとします。

*.DAT=*.SEM; *.DOC=*.READY; *=SEM.LAST

SEM.LAST は、.DAT.DOC で終了しないすべてのファイルのセマフォ・ファイルです。

FileSpec が * でアダプタが構成されている場合、そのアダプタは、通常はディレクトリ内にあるすべてのファイルをデータ・ファイルと見なします。ただし、アダプタにセマフォ仕様も存在し、特定のファイルをセマフォ・ファイルとして認識する場合、そのファイルがデータ・ファイルとして扱われることはありません。

アダプタは、すべてのデータ・ファイルを特定のポーリング・サイクルで処理し終わると、対応する全セマフォ・ファイルを削除します。

[完了を確認]

ファイルの受領の完了を確認するための特別な手段を指定します。選択項目は、以下のとおりです。

リスト・オプション 製数値 説明
[なし] 0 ファイルを完全に受信したかどうかを確認するための特別な方法は行いません。
Size 1 [FilePath] ディレクトリ内のファイルの報告されたサイズが増加しなくなるまで待機します。ソース・アプリケーションの動きが遅いときは、このオプションは十分ではない場合があります。オペレーティング・システムによって [ファイルアクセスタイムアウト] 設定の期間に同じファイル・サイズが報告された場合に、ファイルの受信が完了したと見なされます。
Rename 2 オペレーティング・システムからファイルの名前を変更する許可があるまで、ファイルのデータ読み込みを続けます。
Readable 4 読み込みモードでファイルを開くことが可能になった場合に、ファイルの受信が完了したと見なされます。
Writable 8 書き込みモードでファイルを開くことが可能になった場合に、ファイルの受信が完了したと見なされます (テストとしてのみ。ファイルへの書き込みは行われません)。

各オプションの有効性は、オペレーティング・システムと、ファイルを [ファイルパス] ディレクトリに格納するプロセスの詳細によって異なります。

[ファイルアクセスタイムアウト]

デフォルトは 10 秒です。

File Path

ファイルの検索先ディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル Ensemble マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。

ファイルスペック

取得するファイルのファイル名またはワイルドカードのファイル仕様です。ワイルドカード仕様では、ローカル Ensemble マシンのオペレーティング・システムに適した規則を使用します。

[サブディレクトリレベル]

ファイルを検索するディレクトリ下のサブディレクトリの階層数。

[ワークパス]

ファイル内のデータの処理中に、アダプタが入力ファイルを格納するディレクトリの完全パス名です。このディレクトリは存在するディレクトリであること、また、ローカル Ensemble マシンのファイル・システムからアクセス可能なディレクトリであることが必要です。この設定は、ファイル送信の繰り返しで同一ファイル名が使用される場合に便利です。[WorkPath] を指定しない場合、アダプタはファイルの処理中にファイルを移動しません。

プロダクションで入力ファイル内のデータを処理している最中にそのファイルが削除されないことを保証するために、[ArchivePath][WorkPath] を同じディレクトリに設定することをお勧めします。または、データ処理に、ビジネス・サービスから同期呼び出しのみを使用する方法があります。

FeedbackOpens in a new tab