7.6.2 ファイル監視ジョブの注意事項
ファイル監視ジョブの注意事項(使用する前に知っておいた方がよいこと)を次に示します。
ファイル監視ジョブを使った例を次に示します。
-
ファイルの書き込み時間を監視して,ファイルが変更されたときに後続ジョブを実行する。
-
アプリケーションが出力するファイル,または他ホストから転送されてくるファイルを監視して,ファイルの作成が完了したあとに後続ジョブを実行する。
ファイル監視ジョブで監視する事象,ファイル名の指定方法,およびファイル監視ジョブのオプションを次に説明します。
(1) ファイル監視ジョブで監視する事象
監視する事象を次に示します。
- 注※1
-
監視開始の時点で,指定した名称のファイルがすでにある場合には,そのファイルが削除され,再度作成されたときに条件が成立します。
なお,監視開始の時点で,指定した名称のファイルがすでにある場合に条件を成立させるかどうかを,監視開始オプションで指定することもできます。監視開始オプションの詳細については,「(3) ファイル監視ジョブのオプション」を参照してください。
- 注※2
-
監視条件に合致した場合,監視対象のファイルにファイル監視ジョブ以外のプロセスがアクセスしていないかチェックします(クローズチェック)。
監視条件に合致しても,ファイル監視ジョブ以外のプロセスが監視対象のファイルにアクセスしていた場合は条件成立となりません。この場合,次回の監視間隔に繰り越して監視し,そこでファイル監視ジョブ以外のプロセスのアクセスがなければ条件成立となります。このクローズチェックをすることで,ファイルコピー中など転送中(ファイルコピー中など)の監視対象のファイルを条件成立とすることを防ぐことができます。
- 注※3
-
監視開始の時点で,指定した名称のファイルがない場合には,そのファイルが作成されて,削除されたときに条件が成立します。
- 注※4
-
監視開始の時点で,指定した名称のファイルがない場合には,そのファイルが作成されて,サイズ変更または最終書き込み時刻が変更されたときに条件が成立します。ファイルが作成されただけでは条件は成立しません。
これらの条件は,複数指定することもできます。例えば,ファイルが削除または更新されたら後続ジョブを実行するように定義する場合は,「削除」と「最終書き込み時刻変更」を指定します。ただし,「サイズ変更」と「最終書き込み時刻変更」は同時に指定できません。
ファイル監視ジョブの基本動作例を紹介します。
(a) 監視条件で「作成」を指定した場合
監視条件で「作成」を指定して監視している場合の,ファイル監視ジョブの基本動作を次の図に示します。
なお,図中の「ファイル」とは,監視対象ファイルを指します。
■ ジョブの開始時に監視対象ファイルがないとき
ジョブの開始時に監視対象ファイルがないときは,次のように動作します。
|
■ ジョブの開始時に監視対象ファイルがあるとき
ジョブの開始時に監視対象ファイルがあるときは,次のように動作します。
|
(b) 監視条件で「削除」「サイズ変更」または「最終書き込み時刻変更」を指定した場合
監視条件で「削除」,「サイズ変更」,または「最終書き込み時刻変更」を指定して監視している場合の,ファイル監視ジョブの基本動作を次の図に示します。この例では,監視条件に「削除」を指定したものとします。
■ ジョブの開始時に監視対象ファイルがないとき
ジョブの開始時に監視対象ファイルがないときは,次のように動作します。
|
■ ジョブの開始時に監視対象ファイルがあるとき
ジョブの開始時に監視対象ファイルがあるときは,次のように動作します。
|
(c) 監視間隔内に複数回イベントが発生した場合(監視条件が「作成」の場合)
監視条件で「作成」を指定して監視していて,監視間隔内に複数回ファイルが更新されたときの,ファイル監視ジョブの基本動作を次の図に示します。
■ ファイルの作成を検知しないとき
ファイルの作成を検知しないときは,次のように動作します。
|
■ ファイルの作成を検知するとき
ファイルの作成を検知するときは,次のように動作します。
|
(2) ファイル名の指定方法
ファイル名の指定方法には,絶対パス名でファイル名を指定する方法のほかに,絶対パス名と「*(ワイルドカード)」を使用した総称名で指定する方法があります。ワイルドカードを使った監視ファイル名の指定例を次に示します。
- 注
-
このファイル名の指定例は,すべて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サービスが起動して,サービスが停止する前と同じファイル監視ジョブが実行されたときに,サービスが停止する前のファイル監視ジョブの監視状態を引き継いでジョブが実行されます。なお,クラスタでなくても,ファイル監視ジョブの情報を引き継げます。
監視状態を引き継ぐには,ファイル監視ジョブが継続して動作している必要があります。ファイル監視ジョブが継続して動作するか,終了するかによって,監視状態が引き継がれるかどうかが異なります。
監視状態が引き継がれる条件を,次の表に示します。
ファイル監視ジョブの種類 |
サービスの再起動 |
停止を伴う フェールオーバー |
システムダウンによるフェールオーバー |
---|---|---|---|
ジョブネット中の ファイル監視ジョブ |
ジョブが終了するため,引き継がれない※ |
ジョブが終了するため,引き継がれない※ |
引き継がれる |
起動条件中のファイル監視ジョブ |
引き継がれる |
引き継がれる |
引き継がれる |
- 注※
-
イベントジョブ実行継続オプションを併用していても,実行エージェントのJP1/AJSサービスの再起動または停止を伴うフェールオーバー時にはファイル監視ジョブがいったん終了するため,表7-4に示したケースに該当します。そのため,ファイル監視ジョブが実行中である実行エージェントのJP1/AJSサービスが停止し,再起動してイベント監視を再開するまでの間に発生したイベントについては検知されません。
また,その際に実行エージェント側の統合トレースログにメッセージKAVT2031-EおよびKAVT2034-Wが出力されます。イベントジョブ実行継続オプションを併用している場合は,これらのメッセージが出力されても無視して運用を継続してください。イベントジョブ実行継続オプションの詳細については,マニュアル「JP1/Automatic Job Management System 3 運用ガイド 8.2.1 JP1/AJS3のサービスが停止してもイベントジョブおよびカスタムイベントジョブの実行を継続させる」を参照してください。
なお,次のような場合には,状態引き継ぎ情報格納ファイルが削除されます。
-
各ファイル監視ジョブに対して作成される状態引き継ぎ情報格納ファイルは,ファイル監視ジョブの終了時に削除されます。
-
状態引き継ぎを行ったあと,状態引き継ぎを行わない設定に変更した場合,状態引き継ぎ情報格納ファイルはすべて削除されます。
-
コールドオプションを設定してJP1/AJS3サービスを起動した場合,状態引き継ぎ情報格納ファイルはすべて削除されます。
ファイル監視ジョブの状態引き継ぎオプションを設定した場合の動作例を次の図に示します。
|
ファイル監視ジョブの監視状態を引き継ぐ機能は,デフォルトでは無効になっています。有効にするには,ファイル監視ジョブを実行するすべてのホストおよびノードで設定を行ってください。クラスタの場合は,実行系・待機系ともに設定が必要になります。設定手順については,マニュアル「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) ファイル監視ジョブ定義時の注意事項
ファイル監視ジョブを定義するときの注意事項を次に示します。
-
監視間隔を1〜9秒に設定したファイル監視ジョブを実行した場合,ファイルの更新発生(イベント発生)に対して,即時(1〜9秒)に後続ジョブが実行されるわけではありません。特に,多数のファイル監視ジョブを実行する場合,後続ジョブの実行までに時間が掛かることがあります。この場合,監視間隔には十分に余裕を持った値を設定してください。
なお,ファイル監視ジョブの監視間隔時間の見積もり式については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(システム構築編) 3.1.6 ファイル監視ジョブ使用時に設定する監視間隔」を参照してください。
-
ファイル監視ジョブに指定する監視対象ファイル名を,「*(ワイルドカード)」を使用した総称名で指定し,かつ監視対象ファイル名に合致するファイルが多い場合,ファイル監視ジョブの動作が遅延したり,ファイル監視プロセスのCPU使用率が高くなったりします。監視対象ファイル名を総称名で指定するときは,監視対象ファイル名に合致するファイルが必要最小限となるように監視対象ファイル名を指定したり,不要になったファイルを削除してファイル数を減らしたりすることを推奨します。または,監視対象ファイル名は完全名で指定してください。
-
ジョブ実行時にディスクがマウントされたり,アンマウントされたりする環境にあるファイルを,ファイル監視ジョブの監視対象にしないでください。このようなファイルを監視対象にした場合,監視処理が正常に動作しなくなったり,ファイルの作成や削除を意図しないタイミングで検知してしまったりすることがあります。
-
Windowsの場合,ファイル監視ジョブが監視できるファイルは,デフォルトではファイルサイズが2ギガバイト(2,147,483,647バイト)までのファイルです。これより大きいファイル(ラージファイル)を監視したい場合は,環境設定が必要です。設定方法については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 6.3.16 ラージファイルを監視するための設定」を参照してください。なお,バージョン11-10以降のUNIX版のJP1/AJS3の場合は,この設定とは関係なくラージファイルを監視できます。
Windows版のJP1/AJS3の場合,ラージファイルを監視するための設定をしたとき,または,バージョン11-10より前のバージョンからバージョン11-10以降へUNIX版のJP1/AJS3をバージョンアップしてラージファイルを監視できるようになったときは,次に示す注意事項があります。
-
ファイル監視ジョブの引き継ぎ情報FLSIZEをUNIXジョブなどのユーザープログラムで参照・使用している場合,2ギガバイト以上の値が引き継がれるおそれがあります。この場合,ユーザープログラムのファイルサイズを扱う処理でけたあふれが発生するおそれがあるため,ユーザープログラムの修正などの対処が必要です。
-
-
ファイル監視ジョブの監視対象ファイル名は,JP1/AJS3が動作している環境変数LANGに準じた名称にしてください。それ以外の文字コードを使用したファイルを監視する場合の動作は保証できません。
-
ファイル監視ジョブで監視対象となっているファイルが,別のイベントジョブまたはJP1/Baseのイベントサービス機能を使用したログファイル監視の対象にもなっている場合,監視対象ファイルはオープンされていると認識されるため,監視条件は成立しません。そのため,別のイベントジョブやJP1/Baseのイベントサービス機能を使用したログファイル監視の対象ファイルは,ファイル監視ジョブの監視対象としないでください。
-
syslogやデバイススペシャルファイルなどのOSのシステムファイルは,不特定多数のプロセスのアクセス,ファイルへの頻繁なアクセス,およびファイルを使用しているプロセスを判断できないケースがあるため,監視対象としないでください。また,RAWファイルについてもファイルの更新,およびファイルを使用しているプロセスを判断することができないため,監視対象としないでください。
-
ファイル監視ジョブの監視対象ファイル名に,ネットワークを介したファイル※の名称を指定する場合は,環境設定パラメーターNetworkFilewatchに「Y」を設定してください。環境設定パラメーターNetworkFilewatchの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.6.2(32) NetworkFilewatch」を参照してください。
環境設定パラメーターNetworkFilewatchに「Y」を設定しないでネットワークを介したファイルの名称を指定して運用した場合,ネットワーク状況によって,ファイル監視ジョブが意図しない動作をすることがあります。
指定したいファイルの参照先が自ホスト上のファイルの場合は,ネットワークを介さないファイルの名称を指定してください。
指定したいファイルの参照先が他ホスト上のファイルの場合は,次のように監視してください。
-
監視するファイルが存在するホストにJP1/AJS3をインストールし,自ホストのファイルとして監視する
-
監視するファイルが存在するホストから,JP1/AJS3がインストールされているホストにFTPなどで転送して,監視する
- 注※
-
ネットワークを介したファイルの例を次に示します。
Windows:UNCで参照できるファイル
UNIX:NFSマウントで参照できるファイル
-
-
Windows環境で監視対象ファイル名にネットワークを介したファイルを指定する場合は,ファイル名をUNCパスで指定します。ネットワークドライブ名から始まるパスは指定できません。
-
ネットワークを介したファイルを監視する運用をしている際に,監視対象のファイルが配置されているサーバを一時的に停止する場合は,事前に,停止するサーバ上のファイルを監視しているファイル監視ジョブを終了状態にしてください。監視対象のファイルが配置されているサーバを停止したり,再起動したりすると,ファイル監視ジョブが異常検出終了することがあります。
-
環境設定パラメーターNetworkFilewatchに「Y」を設定しない場合で,ファイル監視ジョブの実行先ホストがUNIXのとき,ネットワークを介して他ホストから操作(作成,更新,または参照)されるファイルは監視しないでください。ファイルがネットワークを介して他ホストから操作された場合,ファイルの操作中に条件成立したり,1回のファイル操作で複数回条件成立したりするおそれがあります。
-
頻繁にファイルのオープン・クローズを行い,データを追加書きするようなファイルについては,ファイル監視ジョブで正しく監視できません。ファイル監視ジョブの監視するタイミングと,ファイルのクローズが重なると,監視対象ファイルの更新処理が終了したと見なしてイベントが発生することがあります。このようなファイルを監視する場合には,直接ファイル監視ジョブで監視するのではなく,ファイル更新が終わったときに処理の完了を示す別ファイルを作成し,そのファイルを監視するような運用を推奨します。
-
「*(ワイルドカード)」を含む監視対象ファイル名で監視している場合の注意事項を次に示します。
-
同一の監視間隔内で発生したファイル監視イベントについて,ファイルの作成順,更新順,および削除順にファイル監視を行うことはできません。なお,イベント順序保証オプションは,発生したファイル監視イベントの順序が通信の状態などによって変更されないことを保証するものであり,ファイル監視ジョブの動作を変更するものではありません。
-
-
ファイル監視ジョブの監視条件成立に関する注意事項を次に示します。
-
監視条件に「ファイルの削除」を指定し,監視開始時に監視対象ファイルがなかった場合,そのファイルが一度作成され,その後削除されてから監視条件成立となります。
-
監視条件に「ファイルのサイズ変更」または「ファイルの最終書き込み時刻変更」を指定し,監視開始時に監視対象ファイルがなかった場合,そのファイルが一度作成され,その後サイズの変更,または最終書き込み時刻の変更が行われてから監視条件成立となります。
なお,ファイルのサイズ変更,および最終書き込み時刻変更は,ディスクに実際に書き込まれてから監視条件成立となります。エディターなどで編集しているだけでは,監視条件成立にはなりません。
-
-
ファイル監視ジョブの状態引き継ぎオプションを設定していないと,ファイル監視ジョブがファイルを監視中にJP1/AJS3サービスが停止したときに,ファイル監視ジョブが監視中に持っていた情報が失われます。再度JP1/AJS3サービスを開始してファイル監視を実行した場合,前回のファイル監視情報は引き継がれません。
-
ファイル監視ジョブは,監視間隔に指定した間隔でファイルをチェックします(「*」指定時は監視しているそれぞれのファイルをチェックします)。そのため,ある監視時刻から次回監視時刻までの間に,監視している一つのファイルに対して監視条件に合うファイル更新が複数回行われた場合でも,最後に行われた更新だけを検知します。また,多数のジョブで一度にファイル更新を検知すると,それぞれのジョブでイベント発行のための処理を行うため,次回監視時刻が遅れることがあります。次回監視時刻が遅延している間に,監視条件に合うファイル更新が複数回行われた場合でも,最後に行われた更新だけを検知します。
短い監視間隔を指定した場合,多数のジョブを監視していると,監視に監視間隔以上の時間が掛かることがあります。
-
ファイル監視ジョブは,監視対象ファイルの状態の変更を検知した場合,クローズチェックによって監視対象ファイルをオープンしているプロセスがないかどうかをチェックしています。そのとき,ファイルがオープンされていないと判断した場合に,イベントが発生します。監視対象ファイルがオープンされている場合は,その時点でのイベントは発行しないで,再び監視中の状態になります。次回監視間隔の経過後に,再び監視対象ファイルをオープンしているプロセスがないかどうかをチェックします。つまり,監視対象ファイルがオープンされている間は,監視対象ファイルの状態の変更を検知していても,イベントは発行しません。なお,WindowsでSMB以外のプロトコル(例えば,NFS)で共有しているファイルを監視する場合,またはUNIXでネットワークを介したファイルを監視する場合,他ホスト(当該ジョブを実行しているエージェントホスト以外のホスト)上のプロセスがファイルをオープンしているかどうか確認できません。このため,監視中に他ホスト上のプロセスによってファイルがオープンされていても,イベントを発行します。
-
ファイル監視ジョブの状態引き継ぎオプションを設定していて,退避したJP1/AJS3のユニットを実行する場合や,バックアップしたJP1/AJS3のインストール先ディレクトリ下の環境を使用するときは,JP1/AJS3サービスをコールドスタートしておく必要があります。JP1/AJS3サービスをコールドスタートしないで,バックアップしたJP1/AJS3のファイル監視ジョブを実行した場合,退避前の監視状態から監視を始めます。
-
情報格納ファイルや情報格納フォルダに何らかの異常が発生して,引き継ぎ状態を格納するファイルの作成や書き込みができない場合,メッセージKAVT2034-Wを統合トレースログ出力してからジョブの実行を継続します。この場合,監視状態を引き継ぐためのファイルは生成されません。
-
ファイル監視ジョブの状態引き継ぎを設定していて,起動条件のファイル監視ジョブを実行して,JP1/AJS3サービスを強制終了させた場合は,ファイル監視ジョブの監視状態を引き継ぎますが,JP1/AJS3サービスを計画終了させた場合には,ファイル監視ジョブの状態は引き継ぎません。
-
次に示すディレクトリには,ファイル監視プロセスの起動中,随時読み込み,書き込み処理を行っているファイルがあります。そのため,次に示すディレクトリにあるファイルは監視対象に指定しないでください。
物理ホストでの運用時
- Windowsで,インストール先フォルダがデフォルトまたはシステムで保護されたフォルダ配下の場合
-
%ALLUSERSPROFILE%\Hitachi\JP1\JP1_DEFAULT\JP1AJS2\jp1ajs2\sys
「%ALLUSERSPROFILE%」のデフォルトは「システムドライブ\ProgramData」です。
「システムで保護されたフォルダ」とは,次のパスを指します。
・「システムドライブ\Windows」配下
・「システムドライブ\Program Files」配下
・「システムドライブ\Program Files (x86)」配下
- Windowsで,インストール先フォルダが上記以外の場合
-
JP1/AJS3のインストール先フォルダ\jp1ajs2\sys
- UNIXの場合
-
/var/opt/jp1ajs2/sys
論理ホストでの運用時
- Windowsの場合
-
共有フォルダ\jp1ajs2\sys
- UNIXの場合
-
共有ディレクトリ/jp1ajs2/sys
-
Windowsでファイル監視ジョブを使用する場合で,次の二つの条件を満たすとき,予期したファイルとは異なるファイルの変更を検知することがあります。
-
ファイル監視ジョブの監視対象ファイル名を,拡張子は3文字で固定して指定し,その他の部分はワイルドカードで指定している場合。
(例)
「C:\Temp\*.txt」のように監視対象ファイルを指定している場合。
-
ファイル監視ジョブの監視フォルダの下に,拡張子が4文字以上,かつ拡張子の3文字目までが,1で指定した監視対象ファイル名の拡張子と一致するファイルがある場合。
(例)
「*.txt」という監視対象ファイル名を監視している場合(ワイルドカードを使用した前方一致の監視条件)で,監視フォルダの下に,「aaa.txt」,「aaa.txta」,「aaa.txtab」という三つのファイルがあり,どれかが更新されたとき,どのファイルが更新されても,ファイル監視ジョブによって監視条件と一致したと見なされてしまいます。拡張子の指定のしかたで,どのようなファイルが監視対象となるかの例を次の表に示します。
表7‒5 拡張子による監視対象ファイルの検知の有無 監視対象ファイル名
更新されるファイル名
aaa.tx
aaa.txt
aaa.txta
aaa.txtab
C:\Temp\*.tx
○
×
×
×
C:\Temp\*.txt
×
○
○
○
C:\Temp\*.txta
×
×
○
×
C:\Temp\*.txtab
×
×
×
○
- (凡例)
-
○:更新があった場合,イベントが発行される。
×:更新があった場合,イベントが発行されない。
-
-
転送ツールを使用して,監視対象ファイルの更新などをしている場合,ファイルを上書きしたときでも,「削除」,または「作成」という監視条件が成立したと見なされることがあります。意図しない監視条件で成立するのは,使用しているツールの内部処理にファイルを削除する処理が入っている場合です。削除する処理と監視間隔のタイミングが一致すると,ファイル監視ジョブにファイルが削除されたと見なされることが原因です。この現象の発生を回避するためには,監視対象ファイルが常に上書きされる運用であっても,「作成」と「最終書き込み時刻変更」という監視条件を使用して監視することを推奨します。
-
起動条件に指定されたファイル監視ジョブが監視中のとき,ファイル監視ジョブの状態引き継ぎオプションを無効から有効に変更し,JP1/AJS3を再起動するとメッセージKAVT2031-EおよびKAVT2034-Wが統合トレースログに出力されます。これは,JP1/AJS3が再起動前にファイル監視ジョブの状態引き継ぎオプションが設定されていなかったため,再起動前のファイル監視ジョブの監視状態を引き継げなかったことを意味します。再起動前の状態を引き継ぐことができないので,ファイル監視ジョブが監視中のときには,ファイル監視ジョブの状態引き継ぎオプションを無効から有効に変更しないでください。
-
Windowsでファイル監視ジョブを使用する場合,監視対象ファイル名に「*.*」を指定すると,拡張子のないファイル名のファイルも検知します。
例えば,監視対象ファイル名に「C:\temp\*.*」を指定した場合,C:\temp下の次に示すファイル名のファイルが更新されるとイベントが発行されます。
-
abc
-
abc.txt
-
abc.txt.txt
-
-
監視対象ファイルがシンボリックリンクの場合は,監視できません。ただし,監視対象ファイル名にシンボリックリンクしたディレクトリが含まれていても,ファイル自体がシンボリックリンクでなければ監視できます。
-
ファイル監視ジョブは,監視対象ファイルの状態に変更がないかを監視間隔ごとに調べます。変更を検知したファイルについては,指定された監視条件(作成,サイズ変更,または最終書き込み時刻変更)に関係なく,クローズチェックを実施します。Windows環境のクローズチェックでは,監視対象ファイルを書き込みモードでオープンします。オープンできた場合はすぐにクローズして,監視対象ファイルをオープンしているプロセスがないと判断します。そのため,クローズチェックによるファイルのオープンからクローズまでの間,ほかのプログラムは監視対象ファイルにアクセスできません。したがって,イベントジョブや起動条件付きジョブネットで監視中のファイルをユーザープログラムから操作する場合は,ファイルアクセスの失敗を考慮し,ファイルアクセスのリトライ処理を組み込むなどの対策が必要です。
-
Windows環境で監視対象ファイルに読み取り専用属性が設定されている場合は,監視対象ファイルを書き込みモードでオープンできないため,クローズチェックが実施できず,監視条件に合致する監視対象ファイルの状態の変更を検知してもイベントを発行しません。監視対象ファイルに読み取り専用属性が設定されている場合は,統合トレースログにメッセージKAVT2036-Wが出力されるので,監視対象ファイルの読み取り専用属性を解除して,書き込みモードでオープンできるようにしてください。
-
Windowsのファイルシステムでは,次のファイル名が使用されます。
-
ユーザーが任意の文字列を指定したロングファイル名
-
Windowsが自動的に生成するショートファイル名(8.3形式)
JP1/AJS3のファイル監視ジョブも,これらのファイル名を監視対象とします。そのため,ファイル監視ジョブは,監視対象ファイル名とWindowsが自動的に生成したショートファイル名が一致したファイルについてもイベントを検知します。監視対象ファイル名とショートファイル名が一致した場合,一見すると意図しないファイルについてイベントを検知したように見えます。
ファイル監視ジョブが意図しないファイルを検知した場合は,コマンドプロンプトで次のコマンドを実行して監視対象ファイルがあるフォルダ配下のファイルのショートファイル名を出力し,監視対象ファイル名が意図しないファイルのショートファイル名と一致していないか確認してください。
dir 監視対象ファイルがあるフォルダのフルパス /x
ショートファイル名をファイル監視ジョブの監視対象にさせないようにするには,監視対象ファイル名を次のように指定してください。
-
監視対象ファイルに総称名を指定する場合は,ファイル名の固定文字列部分を8文字以上にする。
ショートファイル名を監視対象にしない場合と監視対象にする場合の監視対象ファイル名の定義例を,次の表に示します。
表7‒6 ショートファイル名を監視対象にしない場合と監視対象にする場合の監視対象ファイル名の定義例 監視対象ファイル群
監視対象ファイル名で指定する総称名
ロングファイル名
ショートファイル名
C:\temp\ABCDEFGH001.log
C:\temp\ABCDEF~1.log
- ショートファイル名を監視対象にしない場合
-
C:\temp\ABCDEFGH*.log
固定文字列部分「ABCDEFGH」が8文字以上です。
- ショートファイル名を監視対象にする場合
-
C:\temp\ABCDEF*.log
固定文字列部分「ABCDEF」が8文字未満です。
C:\temp\ABCDEFGH002.log
C:\temp\ABCDEF~2.log
C:\temp\ABCDEFGH003.log
C:\temp\ABCDEF~3.log
C:\temp\ABCDXXXXXXX.log
C:\temp\ABCDEF~4.log
-
監視対象ファイル名に完全名を指定する場合は,ショートファイル名形式のファイル名を指定しない。
ショートファイル名形式のファイル名とは,8.3形式のショートファイル名をロングファイル名として命名したファイル名のことです。
補足事項
監視対象ファイル名にショートファイル名形式のファイル名を指定する場合は,指定するファイルと同じパス上にはショートファイル名形式のファイルだけを配置するようにしてください。
-
-
Linuxの場合で,ファイル監視ジョブを実行しているホストと,NFSなどのネットワークを介したファイルシステムとの接続が切断されたとき,ファイル監視ジョブが実行中のままになることがあります。この場合,正しくファイルの状態を監視できないおそれがあります。
ファイル監視ジョブのクローズチェックにタイムアウト値を設定することで,接続の切断によってファイル監視ジョブが実行中のままになった場合に,メッセージを出力できます。メッセージを出力する場合は,環境設定パラメーターCloseCheckTimeoutおよびCloseCheckWarnLogIntervalを設定してください。環境設定パラメーターCloseCheckTimeoutの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.6.2(34) CloseCheckTimeout」を,環境設定パラメーターCloseCheckWarnLogIntervalの詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.6.2(35) CloseCheckWarnLogInterval」を参照してください。