イベントの受信やファイルの更新などのような事象の発生を契機に処理を実行させる場合は,イベントジョブを使ってジョブネットを定義します。
イベントジョブは,ネットワーク上のマネージャーホストおよびエージェントホストで発生した事象すべてを監視対象にできます。イベントジョブの監視対象を次に示します。
図2-58 イベントジョブの監視対象
イベントジョブを使ったジョブネットの定義例を紹介します。イベントジョブを使ったジョブネット定義の詳細については,「7.6 イベントジョブ使用時の注意事項」もあわせて参照してください。
なお,メール受信監視ジョブは,JP1/AJS3とプログラムとの連携が必要です。詳細については,マニュアル「JP1/Automatic Job Management System 3 連携ガイド」を参照してください。
(1) JP1イベントの受信を契機に処理を実行する(JP1イベント受信監視ジョブ)
JP1イベントとは,JP1/Baseで管理される,JP1シリーズプログラムで事象が発生するたびに発行されるイベントをいいます。JP1イベントは,エラー,警告,通知などの重大度やメッセージなどの情報を持っているため,エラーや警告イベントの受信や,特定のメッセージの受信を契機に後続ジョブやジョブネットを実行させることができます。また,JP1/Baseのイベント変換機能を使って,JP1シリーズ以外のアプリケーションの終了を契機に後続ジョブやジョブネットを実行させることもできます。
JP1イベント受信監視ジョブを実行する際は,実行前にJP1/Baseイベントサービスを起動しておく必要があります。JP1/BaseイベントサービスのAPI設定は「keep-alive」にしておいてください。起動されていない場合,JP1イベント受信監視ジョブはサービスが起動されるまで「実行中」状態のままとなります。
「hostAからJP1イベントを受信したら,後続ジョブを実行する(ジョブネットを定義するホストをhostBとする)」というジョブネットを,JP1イベント受信監視ジョブを使って定義する例を,次の図に示します。
図2-59 JP1イベント受信監視ジョブを使ったジョブネットの定義例
JP1イベント受信監視ジョブは,他ホストのジョブネットと連携できます。
hostAでジョブネットにJP1イベント送信ジョブ(イベントID:100)を定義します。hostAで発行したJP1イベントを監視対象とするために,JP1イベント受信監視ジョブの[イベント発行元ホスト名]に「hostA」を設定します。また,hostAからJP1イベントを受信した場合に後続ジョブを実行させるために,[イベントID]には「100」を設定します。
これによって,hostAでジョブネット中のJP1イベント送信ジョブが実行されると,JP1イベントの監視が終了して,後続ジョブが実行されます。
なお,JP1イベント受信監視ジョブを定義した場合,JP1イベント受信監視ジョブが実行されてから実際にJP1イベント受信監視ができる状態になるまでにタイムラグが発生し,この間に発生したJP1イベントは検知できません。この問題を解決するための機能として,実行前のイベント検索があります。
図2-60 実行前のイベント検索
(2) ファイルの更新を契機に処理を実行する(ファイル監視ジョブ)
ファイル更新や新規ファイルの作成などを契機にジョブを実行するジョブネットの定義には,ファイル監視ジョブを使用します。
ファイル監視ジョブで指定できる監視条件を次に示します。
「あるファイル(ファイル名:ファイル1)の書き込み時間を監視し,ファイルが更新されたときに後続ジョブを実行する」というジョブネットを,ファイル監視ジョブを使って定義する例を次の図に示します。
図2-61 ファイル監視ジョブを使ったジョブネットの定義例
ファイル監視ジョブに監視対象ファイル名と監視条件を設定します。[監視対象ファイル名]にはファイル1のパスを,[監視条件]には[最終書き込み時刻変更]を指定します。
これによって,監視対象のファイルがクローズ(アクセスしているアプリケーションがなくなった)し,最終書き込み時刻が更新された時点でファイル監視ジョブが終了となり,条件成立となります。
(3) ログファイルの更新を契機に処理を実行する(ログファイル監視ジョブ)
ログファイル監視ジョブは,JP1/Baseのログファイルトラップ機能を使って実行されます。JP1/Baseのログファイルトラップ機能とは,アプリケーションプログラムが出力するログファイルのレコードをJP1イベントに変換して,イベントDBに登録するものです。ログファイル監視ジョブを定義することで,ログファイルの更新を契機にジョブやジョブネットを実行させることができます。JP1/Baseのログファイルトラップ機能については,マニュアル「JP1/Base 運用ガイド」を参照してください。また,ログファイル監視ジョブの注意事項については,「7.6.4 ログファイル監視ジョブの注意事項」を参照してください。
ログファイル監視ジョブの動作の概要を次の図に示します。
図2-62 ログファイル監視ジョブの動作の概要
ログファイル監視ジョブは,監視対象に指定されたホストにあるログファイルに特定のデータが出力されたかを監視します。ログファイル監視ジョブには,監視するログファイル名と監視する文字列を指定します。文字列の指定には正規表現を使うこともできます。正規表現については,マニュアル「JP1/Base 運用ガイド」(Windowsの場合)またはUNIXのドキュメント(UNIXの場合)を参照してください。
監視間隔を1~86,400(単位:秒)で指定できます。監視対象として指定できるログファイルは,テキスト形式のものになります。また,複数のログファイル(最大8件)を監視することもできます。
ログファイル監視ジョブを使った条件の例を次に示します。
「ログファイル(ファイル名:ファイル1)に特定の文字列が含まれたログデータが書き込まれたら,後続ジョブを実行する。」というジョブネットを,ログファイル監視ジョブを使って定義する例を次の図に示します。
図2-63 ログファイル監視ジョブを使ったジョブネットの定義例
ログファイル監視ジョブにログファイル名と監視する文字列を設定します。[ログファイル名]にはファイル1のパスを,[トラップするデータ]にはこの図のように特定の文字列を指定します。
これによって,ファイル1の文字列に,「"abc"と"def"」,「"ghi"」,「"jkl"」の三つのうちどれか一つでも書き込まれたら,ログファイルからログデータを取り出した時点でログファイル監視ジョブは終了となり,条件成立となって後続ジョブが実行されます。
また,複数のログファイルを監視し,そのうちのどれか一つに特定の文字列が含まれたログデータが書き込まれたら,後続ジョブを実行させることもできます。
(4) Windowsイベントログの受信を契機に処理を実行する(Windowsイベントログ監視ジョブ)
Windowsイベントログ監視ジョブは,JP1/Baseのイベントログトラップ機能を使って実行されます。JP1/Baseのイベントログトラップ機能とは,WindowsイベントログのレコードをJP1イベントに変換してイベントDBに登録するものです。Windowsイベントログ監視ジョブを定義することで,Windowsイベントログの受信を契機にジョブやジョブネットを実行できます。
JP1/Baseのイベントログトラップ機能,およびイベントログトラップ機能の動作定義については,マニュアル「JP1/Base 運用ガイド」を参照してください。また,Windowsイベントログ監視ジョブの注意事項については,「7.6.5 Windowsイベントログ監視ジョブの注意事項」を参照してください。
Windowsイベントログ監視ジョブの動作の概要を次の図に示します。
図2-64 Windowsイベントログ監視ジョブの動作の概要
Windowsイベントログ監視ジョブで監視できる内容について,次に示します。
Windowsイベントログ監視ジョブを使ったジョブネットの定義例を次に示します。
「セキュリティシステムでの認証が成功したことを通知するWindowsイベントがWindowsのイベントログに出力されたら,後続ジョブを実行する」というジョブネットを,Windowsイベントログ監視ジョブを使って定義する例を次の図に示します。
図2-65 Windowsイベントログ監視ジョブを使ったジョブネットの定義例
まず,Windowsイベントログ監視ジョブの実行前に,JP1/Baseの動作定義ファイルにイベントログトラップ機能の動作を設定します。この例の場合,ログ種別は「Security」,属性名(typeの場合)は「Audit_success」です。
Windowsイベントログ監視ジョブには,監視するログ種別とイベントの種類を指定します。[ログ種別]には[セキュリティ],[イベントの種別]には[成功の監査]を設定します。
これによって,指定したWindowsイベントが出力されてWindowsのイベントログのデータを取り出した時点でWindowsイベントログ監視ジョブは終了となり,条件成立となって後続ジョブが実行されます。
(5) 時間の経過を監視して処理を実行する(実行間隔制御ジョブ)
何分間待ってからジョブを実行する,などのようなジョブネットの定義には,実行間隔制御ジョブを使用します。
「先行ジョブが異常終了したら,10分後にリカバリージョブを実行する」というジョブネットを,実行間隔制御ジョブを使って定義する例を次の図に示します。
図2-66 実行間隔制御ジョブを使ったジョブネットの定義例
まず,先行ジョブが異常終了してから10分後に次の処理を実行させるため,時間の経過を監視する実行間隔制御ジョブを使用します。実行間隔制御ジョブには,[待ち時間]を「10分」と定義します。また,先行ジョブが異常終了したときに実行させるため,[種別]を[リカバリ]にします。実行間隔制御ジョブの後続ジョブである標準ジョブCも同様に[種別]を[リカバリ]にします。
これによって,標準ジョブAが異常終了した場合,リカバリージョブである実行間隔制御ジョブが10分間の時間経過を監視し,10分経過するとその後続ジョブである標準ジョブCが実行されます。標準ジョブAが正常終了した場合は,標準ジョブBが実行されます。
なお,実行間隔制御ジョブで指定する[待ち時間]は,ジョブが実行される所要時間ではなく,実行間隔制御プロセスでの待ち時間を意味します。通信の状態などによって,指定した待ち時間と誤差が生じる場合があります。
(6) イベントジョブの受信情報の引き継ぎ
イベントジョブで受信したイベント情報を変数(マクロ変数)として定義しておき,後続ジョブまたは後続ジョブネットに引き継ぐことができます。後続ジョブに引き継ぐ情報を引き継ぎ情報といいます。
後続ジョブでイベント情報を引き継ぐには,イベントジョブ側に情報を引き継ぐためのマクロ変数を定義しておき,後続ジョブ側でマクロ変数名を指定します。
イベントジョブ側に定義しておくマクロ変数は,次のように設定します。
マクロ変数名は,「?AJS2xxxxx?」という形式の64バイト以内の文字列で指定します。xxxxxの部分に指定できる文字列は,A~Z(大文字の英字),0~9(アラビア数字),「.(ピリオド)」です。また,「引き継ぎ情報名」に設定できる情報は,イベントジョブで引き継ぐ情報として用意されています。詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 付録A イベントジョブで引き継ぐ情報」を参照してください。
マクロ変数はイベントジョブの後続ジョブの実行先のエージェントホスト上で,コマンドラインに引き継いだ情報を展開した形で実行されます。受信情報を引き継ぐ場合には,その内容を意識して,実行時にコマンドの引数として扱える形の情報を引き継ぐ場合だけ定義してください。
マクロ変数の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 3.1.3 マクロ変数を使用した業務の作成方法」を参照してください。
ここでは,イベントジョブで受信した情報を後続ジョブにどのように引き継ぐかを,後続ジョブとして定義したジョブの種類ごとに説明します。
なお,イベントジョブの受信情報をジョブネット全体で参照する場合には,起動条件を使用してください。起動条件については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 3.4 起動条件の定義」を参照してください。
(a) 後続に標準ジョブまたはアクションジョブを定義した場合
イベントジョブの後続ジョブとして標準ジョブ(PCジョブ,UNIXジョブ),またはアクションジョブを定義した場合は,コマンドテキスト,スクリプトファイル名,パラメーター名,環境変数など,任意の文字列が設定できる項目でマクロ変数名を指定しておくと,受信したイベント情報を引き継げます。
イベントジョブの後続にPCジョブを定義した例を次の図に示します。
図2-67 イベントジョブの後続にPCジョブを定義した例
イベントジョブの後続ジョブに標準ジョブ(PCジョブ,UNIXジョブ)またはアクションジョブを定義した場合は,イベントジョブの直後のジョブだけに受信情報を引き継ぎます。したがってこの例の場合,JP1イベント受信監視ジョブで受信したイベント情報は,PCジョブAに引き継がれますが,PCジョブBには引き継がれません。PCジョブAが異常終了した場合でも,受信情報はPCジョブBに引き継がれません。
(b) 後続にネストジョブネットを定義した場合
イベントジョブの後続ユニットとしてネストジョブネットを定義した場合は,ネストジョブネットでマクロ変数名を指定しておくとネストジョブネット中の標準ジョブ(PCジョブ,UNIXジョブ),およびアクションジョブに受信したイベント情報を引き継げます。イベントジョブの後続にネストジョブネットを定義した例を次の図に示します。
図2-68 イベントジョブの後続にネストジョブネットを定義した例
イベントジョブの後続ユニットとしてネストジョブネットを定義した場合は,ネストジョブネット中の標準ジョブ(PCジョブ,UNIXジョブ),およびアクションジョブに受信情報が引き継がれます。したがってこの例の場合,JP1イベント受信監視ジョブで受信したイベント情報は,ネストジョブネットAに定義されているPCジョブX,PCジョブY,およびPCジョブZに引き継がれます。
なお,ネストジョブネット中に同じマクロ変数を定義したイベントジョブがある場合は,ネストジョブネット中のイベントジョブの情報が優先されます。ネストジョブネット中に同じマクロ変数を定義したイベントジョブがある場合の例を次の図に示します。
図2-69 ネストジョブネット中に同じイベントジョブを定義した例
この例の場合,PCジョブXにはJP1イベント受信監視ジョブ(1)のイベント情報が引き継がれますが,PCジョブYにはJP1イベント受信監視ジョブ(2)の受信情報が引き継がれます。なお,PCジョブZにはJP1イベント受信監視ジョブ(1)のマクロ変数が指定されているため,JP1イベント受信監視ジョブ(1)の受信情報が引き継がれます。
(c) 後続に判定ジョブを定義した場合
イベントジョブの後続ジョブとして判定ジョブを定義した場合は,判定ジョブの従属ジョブにマクロ変数名を指定しておくことで,従属ジョブと判定ジョブの後続ジョブとの両方に受信情報を引き継げます。
イベントジョブの後続に判定ジョブを定義した例を次の図に示します。
図2-70 イベントジョブの後続に判定ジョブを定義した例
イベントジョブの後続ジョブとして判定ジョブを定義した場合は,判定ジョブの従属ジョブおよび判定ジョブの後続ジョブに受信情報が引き継がれます。したがってこの例の場合,JP1イベント受信ジョブで受信したイベント情報は,判定ジョブの従属ジョブであるPCジョブAと判定ジョブの後続ジョブであるPCジョブBに引き継がれます。
(d) 後続にORジョブを定義した場合
イベントジョブの後続ジョブとしてORジョブを定義した場合は,ORジョブの後続ジョブにマクロ変数名を指定しておくと,ORジョブの後続ジョブに受信情報を引き継げます。
イベントジョブの後続にORジョブを定義した例を次の図に示します。
図2-71 イベントジョブの後続にORジョブを定義した例
イベントジョブの後続ジョブとしてORジョブを定義した場合は,ORジョブの後続ジョブに受信情報が引き継がれます。この例では,ファイル監視ジョブとJP1イベント受信監視ジョブの二つのイベントジョブでイベントの発生を監視していますが,8:00に発生したJP1イベントを監視しているJP1イベント受信監視ジョブの受信情報がORジョブの後続ジョブに引き継がれます。なお,この場合,ファイル監視ジョブは「計画未実行」状態となります。