Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 設計ガイド(業務設計編)


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

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

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

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

〈この項の構成〉

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

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

表7‒2 監視する事象

監視する事象

監視内容

作成※1,※2

指定した名称のファイルが作成されたかを監視します。

削除※3

指定した名称のファイルが削除されたかを監視します。

サイズ変更※2,※4

指定した名称のファイルサイズが変更されたかを監視します。

最終書き込み時刻変更※2,※4

指定した名称のファイルが更新されたかを監視します。更新した時刻を監視し,更新時刻が変わったら条件成立とします。

注※1

監視開始の時点で,指定した名称のファイルがすでにある場合には,そのファイルが削除され,再度作成されたときに条件が成立します。

なお,監視開始の時点で,指定した名称のファイルがすでにある場合に条件を成立させるかどうかを,監視開始オプションで指定することもできます。監視開始オプションの詳細については,「(3) ファイル監視ジョブのオプション」を参照してください。

注※2

監視条件に合致した場合,監視対象のファイルにファイル監視ジョブ以外のプロセスがアクセスしていないかチェックします(クローズチェック)。

監視条件に合致しても,ファイル監視ジョブ以外のプロセスが監視対象のファイルにアクセスしていた場合は条件成立となりません。この場合,次回の監視間隔に繰り越して監視し,そこでファイル監視ジョブ以外のプロセスのアクセスがなければ条件成立となります。このクローズチェックをすることで,ファイルコピー中など転送中(ファイルコピー中など)の監視対象のファイルを条件成立とすることを防ぐことができます。

注※3

監視開始の時点で,指定した名称のファイルがない場合には,そのファイルが作成されて,削除されたときに条件が成立します。

注※4

監視開始の時点で,指定した名称のファイルがない場合には,そのファイルが作成されて,サイズ変更または最終書き込み時刻が変更されたときに条件が成立します。ファイルが作成されただけでは条件は成立しません。

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

ファイル監視ジョブの基本動作例を紹介します。

(a) 監視条件で「作成」を指定した場合

監視条件で「作成」を指定して監視している場合の,ファイル監視ジョブの基本動作を次の図に示します。

なお,図中の「ファイル」とは,監視対象ファイルを指します。

■ ジョブの開始時に監視対象ファイルがないとき

ジョブの開始時に監視対象ファイルがないときは,次のように動作します。

図7‒3 ジョブの開始時に監視対象ファイルがないとき

[図データ]

■ ジョブの開始時に監視対象ファイルがあるとき

ジョブの開始時に監視対象ファイルがあるときは,次のように動作します。

図7‒4 ジョブの開始時に監視対象ファイルがあるとき

[図データ]

(b) 監視条件で「削除」「サイズ変更」または「最終書き込み時刻変更」を指定した場合

監視条件で「削除」,「サイズ変更」,または「最終書き込み時刻変更」を指定して監視している場合の,ファイル監視ジョブの基本動作を次の図に示します。この例では,監視条件に「削除」を指定したものとします。

■ ジョブの開始時に監視対象ファイルがないとき

ジョブの開始時に監視対象ファイルがないときは,次のように動作します。

図7‒5 ジョブの開始時に監視対象ファイルがないとき

[図データ]

■ ジョブの開始時に監視対象ファイルがあるとき

ジョブの開始時に監視対象ファイルがあるときは,次のように動作します。

図7‒6 ジョブの開始時に監視対象ファイルがあるとき

[図データ]

(c) 監視間隔内に複数回イベントが発生した場合(監視条件が「作成」の場合)

監視条件で「作成」を指定して監視していて,監視間隔内に複数回ファイルが更新されたときの,ファイル監視ジョブの基本動作を次の図に示します。

■ ファイルの作成を検知しないとき

ファイルの作成を検知しないときは,次のように動作します。

図7‒7 検知しない例

[図データ]

■ ファイルの作成を検知するとき

ファイルの作成を検知するときは,次のように動作します。

図7‒8 検知する例

[図データ]

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

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

表7‒3 ワイルドカードを使った監視ファイル名の指定例

指定例

指定内容

監視ファイル名の例

/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」というディレクトリがある場合)

  • ワイルドカードを指定したファイル名の上位ディレクトリがない場合(例えば,「/jp1/*」というファイル名を指定したときに,「/jp1/」というディレクトリがない場合)

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

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

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

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

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

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

監視開始オプションを設定した場合のオプションの基本動作例を紹介します。

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

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

なお,図中の「ファイル」とは,「監視対象ファイル」を指します。

ファイル監視ジョブの実行前に監視対象ファイルが作成されたとき

ファイル監視ジョブの実行前に監視対象ファイルが作成されたときは,次のように動作します。

図7‒9 ファイル監視ジョブの実行前に監視対象ファイルが作成されたとき

[図データ]

ファイル監視ジョブの実行後に監視対象ファイルが作成されたとき

ファイル監視ジョブの実行後に監視対象ファイルが作成されたときは,次のように動作します。

図7‒10 ファイル監視ジョブの実行後に監視対象ファイルが作成されたとき

[図データ]

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

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

ファイル監視ジョブの実行前に監視対象ファイルが作成されたとき

ファイル監視ジョブの実行前に監視対象ファイルが作成されたときは,次のように動作します。

図7‒11 監視対象ファイルをファイル監視ジョブの実行前に作成した場合

[図データ]

ファイル監視ジョブの実行後に監視対象ファイルが作成されたとき

ファイル監視ジョブの実行後に監視対象ファイルが作成されたときは,次のように動作します。

図7‒12 監視対象ファイルをファイル監視ジョブの実行後に作成した場合

[図データ]

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

「既存ファイルも条件成立」を指定した場合

ファイルの新規作成を監視しているファイル監視ジョブが「実行中」状態になったときに監視対象ファイルがすでにあると,監視条件が成立し,ファイル監視ジョブが正常終了します。ただし,監視対象ファイルのクローズチェックが実行されるため,監視対象ファイルが使用中の場合,ファイル監視ジョブは「監視中」状態のままになります。

なお,ジョブの種類によって,監視開始オプションで監視条件を成立させるファイル監視ジョブが異なります。監視開始オプションの動作を,ファイル監視ジョブの種類ごとに示します。

ジョブネット中の監視対象ファイル名を指定したファイル監視ジョブ

ファイル監視ジョブの実行時に監視対象ファイルがある場合,監視開始オプションによって監視条件が成立し,即時にイベントが発生してファイル監視ジョブは正常終了します。

図7‒13 ジョブネット中の監視対象ファイル名を指定したファイル監視ジョブ

[図データ]

ジョブネット中の監視対象ファイル名を「*(ワイルドカード)」で指定したファイル監視ジョブ

ファイル監視ジョブの実行時に監視対象のディレクトリに一つでもファイルがある場合は,監視開始オプションによって監視条件が成立し,即時にイベントが発生してファイル監視ジョブは正常終了します。

図7‒14 ジョブネット中の監視対象ファイル名を「*(ワイルドカード)」で指定したファイル監視ジョブ

[図データ]

補足事項

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

起動条件中の,監視対象ファイル名を指定したファイル監視ジョブ

起動条件中のファイル監視ジョブの実行時に監視対象ファイルがある場合は,監視開始オプションによって監視条件が成立し,即時にイベントが発生します。

監視開始オプションは,イベントが1回成立した時点で満了します。イベント発生後もファイル監視ジョブは「監視中」状態となって監視を継続します。ただし,オプション満了後は,新規ファイルの作成時に条件が成立します。

図7‒15 起動条件中の監視対象ファイル名を指定したファイル監視ジョブ

[図データ]

起動条件中の,監視対象ファイル名を「*(ワイルドカード)」で指定したファイル監視ジョブ

起動条件中のファイル監視ジョブの実行時に,監視対象のディレクトリにあるすべてのファイルに対して,監視開始オプションによって監視条件が成立し,即時イベントが発生します。

監視開始オプションは,各ファイルに対してイベントが1回ずつ成立した時点で満了します。イベント発生後もファイル監視ジョブは「監視中」状態となって監視を継続します。ただし,オプションが成立したファイルは,新規ファイルの作成時に条件が成立します。

図7‒16 起動条件中の監視対象ファイル名を「*(ワイルドカード)」で指定したファイル監視ジョブ

[図データ]

補足事項

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

「新規ファイル作成時に条件成立」を指定した場合(デフォルトの場合)

ファイルの「作成」を監視しているファイル監視ジョブが「実行中」状態になったときに,すでに監視対象ファイルがあっても,監視条件成立にはなりません。ファイル監視ジョブは監視を継続します。

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

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

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

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

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

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

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

表7‒4 監視状態の引き継ぎ条件

ファイル監視ジョブの種類

サービスの再起動

停止を伴う

フェールオーバー

システムダウンによるフェールオーバー

ジョブネット中の

ファイル監視ジョブ

ジョブが終了するため,引き継がれない

ジョブが終了するため,引き継がれない

引き継がれる

起動条件中のファイル監視ジョブ

引き継がれる

引き継がれる

引き継がれる

注※

イベントジョブ実行継続オプションを併用していても,実行エージェントのJP1/AJSサービスの再起動または停止を伴うフェールオーバー時にはファイル監視ジョブがいったん終了するため,表7-4に示したケースに該当します。そのため,ファイル監視ジョブが実行中である実行エージェントのJP1/AJSサービスが停止し,再起動してイベント監視を再開するまでの間に発生したイベントについては検知されません。

また,その際に実行エージェント側の統合トレースログにメッセージKAVT2031-EおよびKAVT2034-Wが出力されます。イベントジョブ実行継続オプションを併用している場合は,これらのメッセージが出力されても無視して運用を継続してください。イベントジョブ実行継続オプションの詳細については,マニュアル「JP1/Automatic Job Management System 3 運用ガイド 8.2.1 JP1/AJS3のサービスが停止してもイベントジョブの実行を継続させる」を参照してください。

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

  • 各ファイル監視ジョブに対して作成される状態引き継ぎ情報格納ファイルは,ファイル監視ジョブの終了時に削除されます。

  • 状態引き継ぎを行ったあと,状態引き継ぎを行わない設定に変更した場合,状態引き継ぎ情報格納ファイルはすべて削除されます。

  • コールドオプションを設定してJP1/AJS3サービスを起動した場合,状態引き継ぎ情報格納ファイルはすべて削除されます。

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

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

[図データ]

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

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

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

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