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

[目次][用語][索引][前へ][次へ]


2.4.4 事象の発生を契機に処理を実行する(イベントジョブを使ったジョブネットの定義例)

イベントの受信やファイルの更新などのような事象の発生を契機に処理を実行させる場合は,イベントジョブを使ってジョブネットを定義します。

イベントジョブは,ネットワーク上のマネージャーホストおよびエージェントホストで発生した事象すべてを監視対象にできます。イベントジョブの監視対象を次に示します。

図2-58 イベントジョブの監視対象

[図データ]

イベントジョブで監視する事象が検知されるタイミング
イベントジョブを使用する場合,イベントジョブを実行した時間と実際にイベントの受信監視ができる状態になる時間とにタイムラグが発生することがあります。このタイムラグの間に発生したイベントは検知できないため,イベントジョブを使ってジョブネットを定義する際は,このタイムラグを十分に考慮する必要があります。
なお,JP1イベント受信監視ジョブの場合は,この問題の解決策として実行前のイベント検索機能を使用する方法があります。詳細については,「(1) JP1イベントの受信を契機に処理を実行する(JP1イベント受信監視ジョブ)」を参照してください。

不特定のタイミングで複数回発生するような事象をジョブネット実行の契機とする場合
不特定のタイミングで複数回発生するような事象をジョブネット実行の契機とする場合は,ジョブネットに起動条件を設定することを推奨します。起動条件の設定については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 3.4 起動条件の定義」を参照してください。
なお,監視する事象が計画的に発生することがわかっているような場合は,起動条件を使わないでイベントジョブをジョブネットの先頭に置くようにしてください。

イベントジョブに打ち切り時間を設定する場合
イベントジョブに打ち切り時間を指定した場合,打ち切り時間は実行先のエージェントホストで計られます。このため,監視中に実行先のエージェントホストが電源ダウンなどで再起動したあともイベントジョブによる事象の監視が継続された場合,打ち切り時間は実行先のエージェントホストが再起動した時刻から計り直されます。エージェントホストの状態に関係なく,ジョブ実行開始時刻からの絶対時刻で監視を打ち切る場合は,ジョブネットの起動条件にイベントジョブを定義し,起動条件の有効範囲を絶対時刻で指定してください。起動条件の詳細については,マニュアル「JP1/Automatic Job Management System 3 導入ガイド 3.4 起動条件の定義」を参照してください。
また,打ち切り時間を設定した場合は,打ち切り時間経過後のイベントジョブをどのような状態として扱うかを指定できます。「強制終了」,「正常終了」,「警告検出終了」,または「異常検出終了」から選べます。デフォルトは「強制終了」です。
これによって,イベントジョブの打ち切り時間経過後にジョブネットを中断または続行できます。

イベント情報の引き継ぎについて
イベントジョブで受信したイベント情報を変数(マクロ変数)として定義しておき,後続ジョブまたは後続ジョブネットに引き継ぐことができます。イベント情報の引き継ぎについては,「(6) イベントジョブの受信情報の引き継ぎ」を参照してください。
 

イベントジョブを使ったジョブネットの定義例を紹介します。イベントジョブを使ったジョブネット定義の詳細については,「7.6 イベントジョブ使用時の注意事項」もあわせて参照してください。

なお,メール受信監視ジョブは,JP1/AJS3とプログラムとの連携が必要です。詳細については,マニュアル「JP1/Automatic Job Management System 3 連携ガイド」を参照してください。

<この項の構成>
(1) JP1イベントの受信を契機に処理を実行する(JP1イベント受信監視ジョブ)
(2) ファイルの更新を契機に処理を実行する(ファイル監視ジョブ)
(3) ログファイルの更新を契機に処理を実行する(ログファイル監視ジョブ)
(4) Windowsイベントログの受信を契機に処理を実行する(Windowsイベントログ監視ジョブ)
(5) 時間の経過を監視して処理を実行する(実行間隔制御ジョブ)
(6) イベントジョブの受信情報の引き継ぎ

(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) ファイルの更新を契機に処理を実行する(ファイル監視ジョブ

ファイル更新や新規ファイルの作成などを契機にジョブを実行するジョブネットの定義には,ファイル監視ジョブを使用します。

ファイル監視ジョブで指定できる監視条件を次に示します。

監視条件
監視対象のファイルがどのような状態になったときに条件成立とするのかを指定します。監視条件は,次の四つから設定できます。
  • 指定したファイル名のファイルが作成されたとき
  • 指定したファイル名のファイルが削除されたとき
  • 指定したファイル名のファイルのサイズが変更されたとき
  • 指定したファイル名のファイルの最終書き込み時刻が更新されたとき

補足事項
  • ファイルの作成を監視条件とした場合に,ファイル監視ジョブが監視を開始した時点で指定した名称のファイルがすでにあったとき,ファイル監視ジョブの監視条件を成立させるかどうかを指定できます。
  • 監視条件は複数指定できます。例えば,ファイルが削除または更新されたら後続ジョブを実行するように定義する場合は,ファイルの削除と最終書き込み時刻変更を指定できます。ただし,ファイルのサイズ変更と最終書き込み時刻変更は同時に指定できません。
  • 監視条件が成立する場合および成立しない場合の詳細については,「7.6.2(1) ファイル監視ジョブで監視する事象」を参照してください。
  • ファイルの作成,サイズ変更,および最終書き込み時刻変更の監視条件に合致した場合,監視対象のファイルにファイル監視ジョブ以外のプロセスがアクセスしていないかチェックします。これをクローズチェックといいます。
    監視条件に合致しても,ファイル監視ジョブ以外のプロセスが監視対象のファイルにアクセスしていた場合は条件成立となりません。その場合,次回の監視間隔に繰り越して監視し,そこでファイル監視ジョブ以外のプロセスのアクセスがなければ条件成立となります。
    このクローズチェックをすることで,ファイルコピー中など転送中の監視対象のファイルが条件成立となることを防ぐことができます。
 

「あるファイル(ファイル名:ファイル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イベントログ監視ジョブで監視できる内容について,次に示します。

ログ種別
指定できるログの種別を次に示します。
  • アプリケーション
  • セキュリティ
  • システム
  • DNS Server
  • Directory Service
  • ファイル複製サービス

イベントの種別
指定できるイベントの種別を次に示します。
  • 情報
  • 警告
  • エラー
  • 成功の監査
  • 失敗の監査

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ジョブの後続ジョブに引き継がれます。なお,この場合,ファイル監視ジョブは「計画未実行」状態となります。

注意事項
  • 引き継ぎ情報は,イベントジョブの実行先のエージェントホストと後続ジョブの実行先のエージェントホストが異なる場合でも引き継げます。ホスト間の文字コードが異なる場合は,文字コードが変換されて引き継がれます。ただし,変換する文字コードに該当する文字がない場合は,正しく変換されません。
  • マクロ変数を後続ジョブのコマンドラインに指定する場合,引き継ぐ情報に空白または「'(シングルクォーテーションマーク)」が含まれていると情報を正しく引き継げません。
  • コマンドラインには,エスケープシーケンスを含むデータを引き継がないでください。また,空白を含んだデータを引き継いだ場合は,意図しない動作をすることがあるため,マクロ変数を「"(ダブルクォーテーションマーク)」で囲んで定義してください。
  • 引き継ぎ情報をジョブのコマンドラインで使う場合に,例えば「AB"C」のように引き継ぐ情報に「"(ダブルクォーテーションマーク)」が入っているとき,「"(ダブルクォーテーションマーク)」は無視され,「ABC」という形で後続ジョブに引き継がれます。このように,各OSのコマンドラインの制約によってジョブが正しく実行されないことがあります。特殊な文字が入っている情報を引き継ぐ場合には,コマンドラインに直接展開しないで環境変数に引き継ぐようにしてください。なお,「"(ダブルクォーテーションマーク)」を有効にする機能によって,「"(ダブルクォーテーションマーク)」を含む情報を引き継ぐことができます。「"(ダブルクォーテーションマーク)」を有効にする機能については,マニュアル「JP1/Automatic Job Management System 3 設計ガイド(システム構築編) 4.3.7(4) 「"(ダブルクォーテーションマーク)」を含むデータをイベントジョブの引き継ぎ情報に使用する」,およびマニュアル「JP1/Automatic Job Management System 3 構築ガイド1 6.3.4 「"(ダブルクォーテーションマーク)」を含むデータをイベントジョブの引き継ぎ情報に使用するための設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド1 15.3.4 「"(ダブルクォーテーションマーク)」を含むデータをイベントジョブの引き継ぎ情報に使用するための設定」(UNIXの場合)を参照してください。ただし,JP1/AJS2 - Manager 06-71以前を使用している場合,この機能は使用できません。

補足事項
  • 複数のイベントジョブに対して後続ジョブが一つだけの場合でも,すべてイベントジョブで受信した情報を後続ジョブに引き継げます。ただし,複数のイベントジョブに同じマクロ変数名が定義されている場合は,受信したイベントジョブの情報が上書きされるため,最後に受信したイベントジョブの情報を参照することになります。
  • 一つのイベントジョブの引き継ぎ情報に,同じ名称のマクロ変数が複数定義された場合,最初に定義された情報が引き継がれます。例えば,「?AJS2111?:EVID」という定義(マクロ変数「?AJS2111?」にイベントIDを引き継ぐように指定)を一つ目に設定し,「?AJS2111?:EVMSG」という定義(マクロ変数「?AJS2111?」にメッセージ情報を引き継ぐように指定)を二つ目に設定した場合,「?AJS2111?」で引き継がれる情報はイベントID(EVID)だけです。
  • イベントジョブから引き継ぐ情報がない場合,またはイベントジョブが実行されなかった場合,後続ジョブで定義したマクロ変数にはマクロ変数名の文字列が渡されます。例えば,マクロ変数名を「?AJS2111?」と定義している場合は,文字列「?AJS2111?」が渡されます。

[目次][前へ][次へ]


[他社商品名称に関する表示]

Copyright (C) 2009, 2014, Hitachi, Ltd.
Copyright (C) 2009, 2014, Hitachi Solutions, Ltd.