8.1.16 本番運用前のJP1/AJS2定義内容のチェックと注意事項

JP1/AJS2では,本番運用時に障害の発生を抑えるため,ジョブの定義内容に不正がないかどうかを本番運用の開始前にチェックできます。

定義内容を事前にチェックする場合の運用までの流れを次の図に示します。

図8-2 定義内容の事前チェックを行う場合の運用までの流れ

[図データ]

定義内容の事前チェックは,ajschkdefコマンドで行います。ajschkdefコマンドを実行すると,定義内容の事前チェック結果格納ファイルにチェック結果が出力されるので,このファイルを確認してください。定義内容の事前チェック結果格納ファイルは,デフォルトでは次に示す場所に出力されます。

Windowsの場合
JP1/AJS2 - Managerのインストール先フォルダ¥log¥ajscheckfile.txt
UNIXの場合
/var/opt/jp1ajs2/log/ajscheckfile.txt

ajschkdefコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 2 コマンドリファレンス 1. コマンド ajschkdef」を参照してください。

なお,定義内容の事前チェックを行うには,定義内容の事前チェック機能をセットアップしておく必要があります。セットアップ方法,および環境の設定方法については,マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 4.7.10 JP1/AJS2定義内容の事前チェック機能の設定」(Windowsの場合),またはマニュアル「JP1/Automatic Job Management System 2 セットアップガイド 14.7.11 JP1/AJS2定義内容の事前チェック機能の設定」(UNIXの場合)を参照してください。

<この項の構成>
(1) チェック項目
(2) チェックの流れ
(3) 注意事項
(4) クラスタ運用時の注意事項

(1) チェック項目

定義内容の事前チェックでチェックできる項目を次の表に示します。

表8-6 定義内容の事前チェック機能でのチェック項目

チェック項目の分類内容
ジョブ実行順序
  • 実行順序関係がループしていないかどうかをチェックします。
  • 判定ジョブに従属ジョブが条件接続されているかどうかをチェックします。
  • 従属ジョブに条件接続以外の関連定義がされていないかどうかをチェックします。
ジョブネット詳細定義ジョブネットコネクタ接続範囲
  • 接続範囲の指定が接続先のジョブネットと一致するか。
接続ホスト名
  • 指定したホストに接続できるか。
接続サービス名
  • 指定したスケジューラーサービスが存在するか。
接続先のジョブネット名次についてチェックします。
  • 未指定ではないか。
  • 指定しているユニットの種別がルートジョブネットまたはプランニンググループであるか。
  • 指定したユニットが存在するか。
  • 指定したユニットに,実行順序制御をすると設定されているか。
  • 指定したユニットがほかのホストを指定していないか。
  • 指定したユニットがほかのスケジューラーサービスを指定していないか。
  • 指定したユニットがほかのジョブネットコネクタを指定していないか。
空ジョブ定義UNIXジョブで,[スクリプトファイル名]または[コマンド文]が指定されているかどうかをチェックします。
PCジョブで,[実行ファイル名]が指定されているかどうかをチェックします。
JP1イベント受信監視ジョブで,[イベントID]が指定されているかどうかをチェックします。
実行ホスト名
  • マネージャー側で,エージェントのホスト名が解決できるかどうかをチェックします。
  • エージェント側で,マネージャーのホスト名が解決できるかどうかをチェックします。
ユーザーマッピングエージェント側でユーザーマッピングが正しくできるかどうかについて,JP1ユーザー,実行元ホスト,OSユーザーを通常のジョブ実行時と同一の方法でチェックします。ただし,JP1ユーザーにマッピングされているOSユーザーの存在確認は行いません。
ジョブ詳細定義UNIXジョブスクリプトファイル名
  1. ファイルがAgent上に存在するかチェックします。※1※2
  2. ファイルのアクセス権限をチェックします。
環境変数ファイル名
  1. ファイルがAgent上に存在するかチェックします。※3
  2. ファイルのアクセス権限をチェックします。
ワークパス
  1. パスがAgent上に存在するかチェックします。※1
  2. パスのアクセス権限をチェックします。
標準入力ファイル名
  1. ファイルがAgent上に存在するかチェックします。※3
  2. ファイルのアクセス権限をチェックします。
標準出力ファイル名
  1. ファイル上位のディレクトリがAgent上に存在するかチェックします。※3
  2. ファイルが存在する場合はアクセス権限をチェックします。
標準エラー出力ファイル名
  1. ファイル上位のディレクトリがAgent上に存在するかチェックします。※3
  2. ファイルが存在する場合はアクセス権限をチェックします。
実行時のユーザー
  1. ユーザーマッピングでチェックします。
転送元ファイル
  1. ファイルがManager上に存在するかチェックします。※1
  2. ファイルのアクセス権限をチェックします。
転送先ファイル
  1. ファイルがAgent上に存在するかチェックします。※1
  2. ファイルのアクセス権限をチェックします。
PCジョブ実行ファイル名ファイルがAgent上に存在するかチェックします。※1,※2
環境変数ファイル名ファイルがAgent上に存在するかチェックします。※3
ワークパスパスがAgent上に存在するかチェックします。※1
標準入力ファイル名ファイルがAgent上に存在するかチェックします。※3
標準出力ファイル名ファイル上位のディレクトリがAgent上に存在するかチェックします。※3
標準エラー出力ファイル名ファイル上位のディレクトリがAgent上に存在するかチェックします。※3
実行時のユーザーユーザーマッピングでチェックします。
転送元ファイルファイルがManager上に存在するかチェックします。※1
転送先ファイルファイルがAgent上に存在するかチェックします。※1
JP1イベント受信監視ジョブイベントIDイベントIDの形式に合致するかチェックします。
実行前のイベント検索検索前時間は範囲内かどうかチェックします。
ファイル監視ジョブ監視対象ファイル名ファイル名の形式をチェックします。
メール受信監視ジョブプラットフォームPC/UNIXが実行先ホストと一致しているかチェックします。
アクションジョブ共通プラットフォームPC/UNIXが実行先ホストと一致しているかチェックします。
実行ファイル権限※4ジョブ実行OSユーザーが該当する実行ファイルに対して実行権限を持つかどうかを,通常のジョブ実行時と同一の方法でチェックします。ただし,UNIX上で実行されるキューレスジョブについては,ジョブ実行OSユーザーがrootの場合は実行権限のチェックはしません(この場合は実行権限がなくても実行できるため)。
また,ジョブ実行OSユーザーのプライマリーグループでだけ実行ファイル権限のチェックを行います。
注※1
相対パス,およびUNCパス指定がされた場合はチェックしません。
注※2
マクロ変数を使用できる項目の場合,実際に実行時に展開される内容が判断できないため,マクロ変数が展開された値としてのチェックはしません。
注※3
ワークパスのチェックで不正を検出した場合,相対パス指定はチェックしません。
注※4
PCジョブ(Windowsホストの場合)はチェックしません。

(2) チェックの流れ

定義内容の事前チェックの流れを次に示します。

[図データ]

(3) 注意事項

定義内容の事前チェックを実施する際の注意事項を次に示します。

  1. 定義内容の事前チェックは,本番業務が実行中でない時間帯に実行してください。本番業務の実行中に定義内容の事前チェックを実行した場合,次に示す現象が発生するおそれがあります。
    • スケジューラーデータベースへのアクセス競合によって,業務実行性能が劣化する
    • システムへの負荷が一時的に集中したことによって,ジョブ実行処理でエラーが発生する
  2. 定義内容の事前チェックの多重実行はできません。
  3. UNIXジョブで[スクリプトファイル名]にパラメーターも同時に指定している場合,定義内容の事前チェックではエラーとして検出されます。
  4. イベントジョブの引き継ぎ情報はチェックの対象外です。
  5. マクロ変数はチェックの対象外です。
  6. 環境変数はチェックの対象外です。
  7. ジョブ実行時変数はチェックの対象外です。
  8. UNIXの場合,JP1/AJS2 Check Managerサービスは,servicesファイルに設定されている「jp1ajs2chkman」サービスのポート番号を使用しません。
  9. スクリプトファイルのアクセス権限のチェックでは運用時とは異なる方法でチェックを行うため,実際には正常終了するジョブを定義内容の事前チェックではエラーとして検出する場合があります。
  10. KAVS3400~KAVS3431メッセージは「統合トレースログ」または「標準出力」だけに出力されます。
  11. Windowsで環境変数ファイル,標準入力ファイル,標準出力ファイル,標準エラー出力ファイルにディレクトリを指定して,キューレスエージェントサービスで実行した場合には正常終了しますが,定義内容の事前チェックではエラーとして検出されます。
  12. UNIXで環境変数ファイルにディレクトリを指定して,キューレスエージェントサービスで実行した場合には異常終了しますが,定義内容の事前チェックではエラーとして検出されます。
  13. ajschkdefコマンドで-Aオプションを指定した場合,実行ファイル権限チェックにジョブ実行OSユーザーの情報が必要なため,「ユーザーマッピング」も前提としてチェックされます。ただし,Windowsでは[実行先ユーザー]に指定されたユーザーで,OSのログオン確認は行いません。
  14. 次に示す条件が重なる場合,一時ファイルを作成し,定義内容の事前チェックを行います。
    • UNIXジョブの場合に,[詳細定義-[UNIX Job]]ダイアログボックスの[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]に存在しないファイルを指定する
    • 上記ジョブを対象に,-Dオプション指定で定義内容の事前チェックを実行する
    一時ファイルは,上記条件のジョブの[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]で指定した場所に作成されます。
    そのため,[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]で指定したファイルの上位ディレクトリは,更新日時が変わる場合があります。
    なお,一時ファイルはチェック終了後に削除されます。
  15. JP1/AJS2 Check Managerサービスの通信処理は,JP1/Baseの物理ホストの通信設定に従っています。このため,複数LAN環境で定義内容の事前チェック機能を使用する場合は,JP1/Baseの物理ホストで通信設定(jp1hostsファイルおよびconfファイルの設定)が必要です。JP1/Baseの通信設定の方法については,マニュアル「JP1/Base 運用ガイド」を参照してください。

(4) クラスタ運用時の注意事項

クラスタ運用している場合に,定義内容の事前チェックを実施する際の注意事項を次に示します。

  1. クラスタシステム環境で,論理ホスト上のユニットに対して定義内容の事前チェックをする場合,論理ホストの実行系でチェックする必要があります。待機系ではチェックできません。
  2. クラスタシステム環境で,実行系の論理ホスト上のユニットをチェックしているときにフェールオーバーが発生した場合は,チェックが中断されます。フェールオーバー後に実行系になった論理ホストでチェックは再開されません。
  3. クラスタシステム環境で,エージェントホストにチェックを要求後,エージェントホストでフェールオーバーが発生した場合は,環境設定パラメーターの値に従ってリトライしますが,それでも接続できない場合は,メッセージ「KAVS3410-I チェックエージェントサービス(エージェント名)との接続が切断されました:保守情報」が出力され,ほかのエージェントホストに対してチェックを行います。