監視フォルダーの仕組み

監視フォルダーモジュールには、次のサービスが含まれています。

  • Watched Folder サービス

  • provider.file_scan_service

  • provider.file_write_results_service

上記のサービスに加えて、監視フォルダーには、ジョブをスケジュールするためのスケジューラーサービスや、ターゲットサービスの非同期呼び出しに対応する Job Manager サービスなど、他のサービスにも依存します。

Watched Folder による呼び出し要求の処理方法

Watched Folder サービスでは、エンドポイントの作成、更新および削除を処理します。管理者がエンドポイントを作成すると、エンドポイントは指定の繰り返し間隔または Cron 形式に基づいてスケジューラーサービスによってトリガーされるようにスケジュールされます。

次の図は、監視フォルダーによる呼び出し要求の処理方法を示しています。

監視フォルダーを使用してサービスを呼び出すプロセスは次のとおりです。

  1. クライアントアプリケーションでは、ファイルやフォルダーを監視フォルダーの入力フォルダーに配置します。

  2. ジョブスキャンが発生すると、スケジューラーサービスによって provider.file_scan_service が呼び出され、入力フォルダー内のファイルまたはフォルダーが処理されます。

  3. provider.file_scan_service で次のタスクが実行されます。

    • 「ファイルパターンを含める」設定に一致するファイルまたはフォルダーがないか入力フォルダーをスキャンし、「ファイルパターンを除外」設定に一致するファイルまたはフォルダーを除外します。最も古いファイルまたはフォルダーが最初に取得されます。待機時間より古いファイルやフォルダーも取得されます。1 回のスキャンで処理されるファイルまたはフォルダーの数は、バッチサイズによって決まります。ファイルパターンについて詳しくは、ファイルパターンについてを参照してください。バッチサイズの設定について詳しくは、Watched Folder サービスの設定を参照してください。

    • 処理対象のファイルまたはフォルダーを取得します。処理対象のファイルまたはフォルダーが完全にダウンロードされない場合は、次回のスキャンで取得します。フォルダーが完全にダウンロードされた状態にするには、管理者は「ファイルパターンを除外」設定を使用して名前付きのフォルダーを作成する必要があります。そのフォルダーにファイルをすべて含めた後、フォルダーの名前を「ファイルパターンを含める」に指定したパターンに合うように変更します。この手順によって、サービスを呼び出すために必要なすべてのファイルがこのフォルダーに含まれるようになります。フォルダーが完全にダウンロードされていることを確認する方法について詳しくは、監視フォルダーのヒントとテクニックを参照してください。

    • 処理対象として選択したファイルまたはフォルダーをステージフォルダーに移動します。

    • エンドポイント入力パラメーターマッピングに基づいて、ステージフォルダー内のファイルやフォルダーを適切な入力に変換します。入力パラメーターのマッピングの例については、監視フォルダーのヒントとテクニックを参照してください。

  4. エンドポイントに設定されているターゲットのサービスが、同期または非同期で呼び出されます。ターゲットのサービスを呼び出すには、エンドポイント用に設定されているユーザー名およびパスワードを使用します。

    • 同期呼び出しでは、ターゲットサービスを直接呼び出し、応答を直ちに処理します。

    • 非同期呼び出しでは、ターゲットサービスは Job Manager サービス経由で呼び出されます。Job Manager サービスは要求をキューに配置します。続いて Job Manager サービスは、provider.file_write_results_service を呼び出して結果を処理します。

  5. provider.file_write_results_service は、ターゲットサービス呼び出しの応答または失敗を処理します。処理が正常に終了すると、その出力がエンドポイントに設定された結果フォルダーに保存されます。正常終了時に結果を保存するようにエンドポイントが設定されている場合、provider.file_write_results_service はソースも保存します。

    ターゲットサービス呼び出しが失敗すると、provider.file_write_results_service は失敗の理由を failure.log ファイルに記録し、そのファイルを失敗フォルダーに配置します。失敗フォルダーは、エンドポイントの設定パラメーターに基づいて作成されます。また、エンドポイント設定に「エラー時に保存」オプションを設定している場合も、provider.file_write_results_service はソースファイルを失敗フォルダーにコピーします。失敗フォルダーからファイルを回復する方法について詳しくは、失敗ポイントおよび回復を参照してください。