8.3.2 ファイル監視ジョブの注意事項

ファイル監視ジョブの注意事項(使用する前に知っておいた方がよいこと)について説明します。

ファイル監視ジョブを使った例を次に示します。

ファイル監視ジョブで監視する事象,ファイル名の指定方法,およびファイル監視ジョブのオプションを次に説明します。

<この項の構成>
(1) ファイル監視ジョブで監視する事象
(2) ファイル名の指定方法
(3) ファイル監視ジョブのオプション
(4) ファイル監視ジョブ定義時の注意事項

(1) ファイル監視ジョブで監視する事象

監視する事象を次に示します。

表8-14 監視する事象

監視する事象監視内容
作成1,※4指定した名称のファイルが作成されたかを監視します。
削除2指定した名称のファイルが削除されたかを監視します。
サイズ変更3,※4指定した名称のファイルサイズが変更されたかを監視します。
最終書き込み時刻変更3,※4指定した名称のファイルが更新されたかを監視します。更新した時刻を監視し,更新時刻が変わったら条件成立とします。
注※1
監視開始の時点で,指定した名称のファイルがすでにあった場合には,そのファイルが削除され,再度作成されたときに条件が成立します。
なお,監視開始の時点で,指定した名称のファイルがすでにあった場合に条件を成立させるかどうかを,監視開始オプションで指定することもできます。監視開始オプションの詳細については,「(3) ファイル監視ジョブのオプション」を参照してください。
注※2
監視開始の時点で,指定した名称のファイルがなかった場合には,そのファイルが作成されて,削除されたときに条件が成立します。
注※3
監視開始の時点で,指定した名称のファイルがなかった場合には,そのファイルが作成されて,サイズ変更または最終書き込み時刻が変更されたときに条件が成立します。ファイルが作成されただけでは条件は成立しません。
注※4
監視条件に合致した場合,監視対象のファイルにファイル監視ジョブ以外のプロセスがアクセスしていないかチェックします(クローズチェック)。
監視条件に合致しても,ファイル監視ジョブ以外のプロセスが監視対象のファイルにアクセスしていた場合は条件成立となりません。この場合,次回の監視間隔に繰り越して監視し,そこでファイル監視ジョブ以外のプロセスのアクセスがなければ条件成立となります。このクローズチェックをすることで,ファイルコピー中など転送中(ファイルコピー中など)の監視対象のファイルを条件成立とすることを防ぐことができます。

これらの条件は,複数指定することもできます。例えば,ファイルが削除または更新されたら後続ジョブを実行するように定義する場合は,「削除」と「最終書き込み時刻変更」を指定します。ただし,「サイズ変更」と「最終書き込み時刻変更」は同時に指定できません。

ファイル監視ジョブの基本動作を次の図に示します。

図8-5 監視条件で「作成」を指定して監視している場合(ジョブネット中のファイル監視ジョブ)

[図データ]

図8-6 監視条件で「削除」「サイズ変更」「最終書き込み時刻変更」のどれかを指定して監視している場合(ジョブネット中のファイル監視ジョブ)

[図データ]

図8-7 監視間隔内に複数回ファイルが更新された場合(監視条件:「作成」だけを指定している場合)

[図データ]

(2) ファイル名の指定方法

ファイル名の指定方法には,絶対パス名でファイル名を指定する方法のほかに,絶対パス名と「*(ワイルドカード)」を使用した総称名で指定する方法があります。ワイルドカードを使った監視ファイル名の指定例を次に示します。

表8-15 ワイルドカードを使った監視ファイル名の指定例

指定例指定内容監視ファイル名の例
/jp1/*/jp1にあるファイルすべてを監視します。ただし,先頭が「.」(ピリオド)で始まるファイルは監視しません。/jp1/aaa
/jp1/aaa.sh
/jp1/.*/jp1にあるファイルで,「.」(ピリオド)で始まるファイルすべてを監視します。/jp1/.aaa
/jp1/aaa*/jp1にあるファイルで,「aaa」という文字列で始まるファイルすべてを監視します。/jp1/aaa
/jp1/aaabbb
/jp1/aaa.sh
/jp1/*aaa/jp1にあるファイルで,「aaa」という文字列が最後に付くファイルすべてを監視します。/jp1/aaa
/jp1/bbbaaa
/jp1/bbb.aaa
/jp1/aaa*bbb/jp1にあるファイルで,「aaa」という文字列で始まり,「bbb」という文字列が最後に付くファイルすべてを監視します。/jp1/aaabbb
/jp1/aaacccbbb
/jp1/aaa.bbb
/jp1/*aaa*/jp1にあるファイルで,「aaa」という文字列がファイル名に含まれているファイルすべてを監視します。/jp1/aaa
/jp1/bbbaaa
/jp1/bbbaaaccc
/jp1/bbbaaa.sh
このファイル名の指定例は,すべてUNIXの場合の例です。Windowsでファイル名を指定する場合は,「c:¥jp1¥*」のようになります。なお,次の場合は,実行時にエラーとなります。
  • ディレクトリ名にワイルドカードを指定した場合
  • 相対パスで指定した場合
  • 指定したファイル名が,ディレクトリとしてすでにある場合(例えば,「/jp1/aaa」というファイル名を指定したときに,すでに「/jp1/aaa」というディレクトリがある場合)

(3) ファイル監視ジョブのオプション

ファイル監視ジョブには,次の二つのオプションを設定できます。

上記のオプションについて,次に説明します。

(a) 監視開始オプション

ファイル監視ジョブが実行中の状態になったときに,すでに監視対象ファイルが存在する場合,ファイル監視ジョブの監視条件を成立させるかどうかをオプションで指定します。このオプションを,「監視開始オプション」と呼びます。

なお,監視開始オプションは,ファイルの監視条件で「作成」を選択した場合に有効になります。また,オプションを指定しない場合は,ファイルが存在していても,監視条件を成立させません。

監視開始オプションを設定した場合のオプションの基本動作例を紹介します。まず,監視開始オプションを設定していない場合の動作例を次の図に示します。

図8-8 監視開始オプションを設定していない場合の動作例

[図データ]

監視開始オプションを設定している場合の動作例を次の図に示します。

図8-9 監視開始オプションを設定している場合の動作例

[図データ]

監視開始オプションの指定内容によって,ファイル監視ジョブがどのように動作するかを,次に説明します。

「既存ファイルも条件成立」を指定した場合
ファイルの新規作成を監視しているファイル監視ジョブが実行中の状態になったときに,監視対象ファイルがすでに存在していると,監視条件が成立し,ファイル監視ジョブが正常終了します。
ただし,監視対象ファイルのクローズチェックが実行されるため,監視対象ファイルが使用中の場合,ファイル監視ジョブは監視中のままになります。
なお,ジョブの種類によって,監視開始オプションで監視条件を成立させるファイル監視ジョブが異なります。監視開始オプションの動作を,ファイル監視ジョブの種類ごとに示します。
  • 監視対象ファイル名が指定されている,ジョブネット中のファイル監視ジョブ
    ファイル監視ジョブの実行時に,監視対象ファイルが存在している場合,監視開始オプションによって監視条件が成立し,即時にイベントが発生してファイル監視ジョブは正常終了します。

    図8-10 監視対象ファイル名が指定されているジョブネット中のファイル監視ジョブ

    [図データ]

  • 監視対象ファイル名が「*(ワイルドカード)」で指定されている,ジョブネット中のファイル監視ジョブ
    ファイル監視ジョブの実行時に監視対象のディレクトリに一つでもファイルが存在している場合は,監視開始オプションによって監視条件が成立し,即時にイベントが発生してファイル監視ジョブは正常終了します。

    図8-11 監視対象ファイル名に「*(ワイルドカード)」が指定されているジョブネット中のファイル監視ジョブ

    [図データ]

    補足事項
    「*(ワイルドカード)」の使用については,「(2) ファイル名の指定方法」を参照してください。

  • 監視対象ファイル名が指定されている,起動条件中のファイル監視ジョブ
    起動条件中のファイル監視ジョブの実行時に監視対象ファイルが存在している場合は,監視開始オプションによって監視条件が成立し,即時にイベントが発生します。
    監視開始オプションは,イベントが1回成立した時点で満了します。イベント発生後もファイル監視ジョブは「監視中」の状態となって監視を継続します。ただし,オプション満了後は,新規ファイルの作成時に条件が成立します。

    図8-12 監視対象ファイル名が指定されている起動条件中のファイル監視ジョブ

    [図データ]

  • 監視対象ファイル名が「*(ワイルドカード)」で指定されている,起動条件中のファイル監視ジョブ
    起動条件中のファイル監視ジョブの実行時に,監視対象のディレクトリにあるすべてのファイルに対して,監視開始オプションによって監視条件が成立し,即時にイベントが発生します。
    監視開始オプションは,各ファイルに対してイベントが1回ずつ成立した時点で満了します。イベント発生後もファイル監視ジョブは「監視中」の状態となって監視を継続します。ただし,オプションが成立したファイルは,新規ファイルの作成時に条件が成立します。

    図8-13 監視対象ファイル名に「*(ワイルドカード)」が指定されている起動条件中のファイル監視ジョブ

    [図データ]

    補足事項
    「*(ワイルドカード)」の使用については,「(2) ファイル名の指定方法」を参照してください。
「新規ファイル作成時に条件成立」を指定した場合(デフォルトの場合)
ファイルの「作成」を監視しているファイル監視ジョブが実行中の状態になったときに,すでに監視対象ファイルが存在していても,監視条件成立にはなりません。ファイル監視ジョブは監視を継続します。

なお,クラスタシステムでJP1/AJS2を運用している場合,JP1/AJS2サービスがフェールオーバーしたあとに,監視開始オプションが設定されているファイル監視ジョブが再度実行されると,「ファイル監視ジョブの状態引き継ぎ」を有効にしている場合は,フェールオーバー前の状態で実行され,「ファイル監視ジョブの状態引き継ぎ」を無効にしている場合は,監視開始オプションが再び有効になります。

ファイル監視ジョブの監視開始オプションの指定方法については,マニュアル「JP1/Automatic Job Management System 2 操作ガイド 13.4.18 [詳細定義-[ファイル監視]]ダイアログボックス」またはマニュアル「JP1/Automatic Job Management System 2 コマンドリファレンス 2.2.10 ファイル監視ジョブ定義情報の記述方法」を参照してください。

(b) ファイル監視ジョブの状態引き継ぎオプション

ファイル監視ジョブが監視対象ファイルを監視している間の情報を,随時退避しておき,ジョブの状態を引き継ぐことができます。状態引き継ぎを行うように設定した場合,ファイル監視ジョブ一つにつき,一つの状態引き継ぎ情報格納ファイルが生成されます。

例えば,クラスタシステムで,ファイル監視ジョブの実行中にJP1/AJS2サービスが停止した場合,JP1/AJS2サービスの停止後,再度JP1/AJS2サービスが起動して,サービスが停止する前と同じファイル監視ジョブが実行されたときに,サービスが停止する前のファイル監視ジョブの監視状態を引き継いでジョブが実行されます。なお,クラスタシステムでなくても,ファイル監視ジョブの情報を引き継げます。

監視状態を引き継ぐには,ファイル監視ジョブが継続して動作している必要があります。ファイル監視ジョブが継続して動作するか,終了するかによって,監視状態が引き継がれるかどうかが異なります。

監視状態が引き継がれる条件を,次の表に示します。

表8-16  監視状態の引き継ぎ条件

ファイル監視ジョブの種類サービスの再起動停止を伴うフェールオーバーシステムダウンによるフェールオーバー
ジョブネット中の
ファイル監視ジョブ
ジョブが終了するため,引き継がれないジョブが終了するため,引き継がれない引き継がれる
起動条件中のファイル監視ジョブ引き継がれる引き継がれる引き継がれる
注※
イベントジョブ実行継続オプションを併用していても,実行ホストのJP1/AJS2サービスの再起動または停止を伴うフェールオーバー時にはファイル監視ジョブがいったん終了します。ファイル監視ジョブが終了すると,退避していた状態引き継ぎ情報格納ファイルが削除されるため,監視対象ファイルの状態は引き継がれません。そのため,ファイル監視ジョブが実行中である実行ホストのJP1/AJS2サービスが停止してからJP1/AJS2サービスを再起動してイベント監視を再開するまでの間に発生したイベントは,検知されません。
イベントジョブ実行継続オプションの詳細については,「8.5.8 JP1/AJS2のサービスが停止してもイベントジョブの実行を継続させる」を参照してください。

なお,次のような場合には,状態引き継ぎ情報格納ファイルが削除されます。

ファイル監視ジョブの状態引き継ぎオプションを設定した場合の動作例を次の図に示します。

図8-14 ファイル監視ジョブの状態引き継ぎオプションを設定した場合の動作例

[図データ]

ファイル監視ジョブの状態を引き継ぐ機能は,デフォルトでは無効になっています。有効にするには,ファイル監視ジョブを実行するすべてのホストおよびノードで設定を行ってください。クラスタシステムの場合は,実行系・待機系ともに設定が必要になります。設定手順については,マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 7.12 ファイル監視ジョブの状態引き継ぎオプションの設定」(Windowsの場合),またはマニュアル「JP1/Automatic Job Management System 2 セットアップガイド 16.8 ファイル監視ジョブの状態引き継ぎオプションの設定」(UNIXの場合)を参照してください。

なお,2ギガバイト以上のファイルを監視する設定(ラージファイル対応オプション)を「対応する」から「対応しない」に変更し,2ギガバイト以上のファイルの情報を引き継いだ場合は,統合トレースログと実行結果詳細にKAVT2038-Eメッセージが出力され,ジョブは異常検出終了します。

(4) ファイル監視ジョブ定義時の注意事項

ファイル監視ジョブを定義するときの注意事項を次に示します。