JP1/Automatic Job Management System 3 設計ガイド(業務設計編)
JP1/AJS3では,本番運用時に障害の発生を抑えるため,ジョブの定義内容に不正がないかどうかを本番運用の開始前にチェックできます。
定義内容の事前チェックを実施する場合の運用までの流れを次の図に示します。
図8-1 定義内容の事前チェックを実施する場合の運用までの流れ
定義内容の事前チェックは,ajschkdefコマンドで行います。ajschkdefコマンドを実行すると,定義内容の事前チェック結果格納ファイルにチェック結果が出力されるので,このファイルを確認してください。定義内容の事前チェック結果格納ファイルは,デフォルトでは次に示す場所に出力されます。
- Windows Server 2008でインストール先フォルダがデフォルトまたはシステムで保護されたフォルダ配下の場合
- %ALLUSERSPROFILE%\HITACHI\JP1\JP1_DEFAULT\JP1AJS2\log\ajscheckfile.txt
- 「%ALLUSERSPROFILE%」のデフォルトは「システムドライブ\ProgramData」です。
- 「システムで保護されたフォルダ」とは,次のパスを指します。
- ・「システムドライブ\Windows」配下
- ・「システムドライブ\Program Files」配下
- ・「システムドライブ\Program Files (x86)」配下(64ビット版のWindowsの場合)
- Windows Server 2003,またはWindows Server 2008でインストール先フォルダが上記以外の場合
- JP1/AJS3 - Managerのインストール先フォルダ\log\ajscheckfile.txt
- UNIXの場合
- /var/opt/jp1ajs2/log/ajscheckfile.txt
ajschkdefコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajschkdef」を参照してください。
なお,定義内容の事前チェックを行うには,定義内容の事前チェック機能をセットアップしておく必要があります。セットアップ方法,および環境の設定方法については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド1 6.5.1 JP1/AJS3定義内容の事前チェック機能の設定」(Windowsの場合)またはマニュアル「JP1/Automatic Job Management System 3 構築ガイド1 15.5.1 JP1/AJS3定義内容の事前チェック機能の設定」(UNIXの場合)を参照してください。
- <この節の構成>
- (1) チェック項目
- (2) 事前チェックの流れ
- (3) 注意事項
- (4) クラスタ運用時の注意事項
(1) チェック項目
定義内容の事前チェック機能でのチェック項目を次の表に示します。
表8-1 定義内容の事前チェック機能でのチェック項目
チェック項目の分類 内容 ジョブ実行順序
- 実行順序関係がループしていないかどうかをチェックします。
- 判定ジョブに従属ユニットが条件接続されているかどうかをチェックします。
- 従属ユニットに条件接続以外の関連定義がされていないかどうかをチェックします。
ジョブネット詳細定義 ジョブネットコネクタ 接続範囲
- 接続範囲の指定が接続先のジョブネットと一致するか。
接続ホスト名
- 指定したホストに接続できるか。
接続サービス名
- 指定したスケジューラーサービスが存在するか。
接続先のジョブネット名 次についてチェックします。
- 未指定ではないか。
- 指定しているユニットの種別がルートジョブネットまたはプランニンググループであるか。
- 指定したユニットが存在するか。
- 指定したユニットに,実行順序制御をすると設定されているか。
- 指定したユニットが他ホストを指定していないか。
- 指定したユニットがほかのスケジューラーサービスを指定していないか。
- 指定したユニットがほかのジョブネットコネクタを指定していないか。
待ち合わせ条件 次についてチェックします。
- 指定した待ち合わせ対象ユニットがあるか。
- 指定した待ち合わせ対象ユニットのユニット種別は,待ち合わせ対象ユニットに指定できるユニット種別であるか。※1
実行エージェント制限 マネージャー側で,実行エージェントが許可されているかどうかをチェックします。※7,※8 空ジョブ定義 UNIXジョブで,[スクリプトファイル名]または[コマンド文]が指定されているかどうかをチェックします。
PCジョブで,[実行ファイル名]が指定されているかどうかをチェックします。
JP1イベント受信監視ジョブで,[イベントID]が指定されているかどうかをチェックします。実行エージェント名
- UNIXジョブ
- PCジョブ
- アクションジョブ
実行先サービスが[標準]※2 次についてチェックします。
- マネージャー側で,実行エージェントが登録されているか。
- マネージャー側で,実行エージェントに設定されている実行ホスト名(エージェントホスト名)を解決できるか。
- エージェント側で,マネージャーのホスト名を解決できるか。※9
実行先サービスが[キューレス] 次についてチェックします。
- マネージャー側で,エージェントのホスト名を解決できるか。
- エージェント側で,マネージャーのホスト名を解決できるか。※9
イベントジョブ 次についてチェックします。
- マネージャー側で,実行エージェントが登録されているか。
- マネージャー側で,実行エージェントに設定されている実行ホスト名(エージェントホスト名)を解決できるか。
- エージェント側で,マネージャーのホスト名を解決できるか。※9
- ジョブネット※2
- カスタムジョブ※2
次についてチェックします。
- マネージャー側で,実行エージェントが登録されているか。
- マネージャー側で,実行エージェントに設定されている実行ホスト名(エージェントホスト名)を解決できるか。
- エージェント側で,マネージャーのホスト名を解決できるか。※9
ユーザーマッピング エージェント側でユーザーマッピングが正しくできるかどうかについて,JP1ユーザー,実行元ホスト,OSユーザーを通常のジョブ実行時と同一の方法でチェックします。ただし,JP1ユーザーにマッピングされているOSユーザーの存在確認は行いません。
なお,実行ユーザー固定機能を使用している場合,ユニット属性プロファイルの設定内容に従って,固定されているJP1ユーザーのユーザーマッピングをチェックします。※7ジョブ詳細定義 UNIXジョブ スクリプトファイル名※3
- ファイルがAgent上に存在するかチェックします。
- ファイルのアクセス権限をチェックします。
環境変数ファイル名
- ファイルがAgent上に存在するかチェックします。
- ファイルのアクセス権限をチェックします。
ワークパス
- パスがAgent上に存在するかチェックします。
- パスのアクセス権限をチェックします。
標準入力ファイル名
- ファイルがAgent上に存在するかチェックします。
- ファイルのアクセス権限をチェックします。
標準出力ファイル名
- ファイル上位のディレクトリがAgent上に存在するかチェックします。
- ファイルが存在する場合はアクセス権限をチェックします。
標準エラー出力ファイル名
- ファイル上位のディレクトリがAgent上に存在するかチェックします。
- ファイルが存在する場合はアクセス権限をチェックします。
実行時のユーザー ユーザーマッピングでチェックします。 転送元ファイル名※3
- ファイルがManager上に存在するかチェックします。
- ファイルのアクセス権限をチェックします。
転送先ファイル名※3
- ファイルがAgent上に存在するかチェックします。
- ファイルのアクセス権限をチェックします。
PCジョブ 実行ファイル名※3 ファイルがAgent上に存在するかチェックします。 環境変数ファイル名 ファイルがAgent上に存在するかチェックします。 ワークパス パスがAgent上に存在するかチェックします。 標準入力ファイル名 ファイルがAgent上に存在するかチェックします。 標準出力ファイル名 ファイル上位のディレクトリがAgent上に存在するかチェックします。 標準エラー出力ファイル名 ファイル上位のディレクトリがAgent上に存在するかチェックします。 実行時のユーザー ユーザーマッピングでチェックします。 転送元ファイル名※3 ファイルがManager上に存在するかチェックします。 転送先ファイル名※3 ファイルがAgent上に存在するかチェックします。 JP1イベント受信監視ジョブ イベントID イベントIDの形式に合致するかチェックします。 実行前のイベント検索 検索前時間は範囲内かどうかチェックします。 ファイル監視ジョブ 監視対象ファイル名 ファイル名の形式をチェックします。 メール受信監視ジョブ プラットフォーム PC/UNIXが実行先ホストと一致しているかチェックします。 アクションジョブ共通 プラットフォーム PC/UNIXが実行先ホストと一致しているかチェックします。※10 実行ファイル権限※6 ジョブ実行OSユーザーが該当する実行ファイルに対して実行権限および読み取り権限を持つかどうかを,通常のジョブ実行時と同一の方法でチェックします。ただし,UNIX上で実行されるキューレスジョブについては,ジョブ実行OSユーザーがrootの場合は実行権限のチェックはしません。
また,ジョブ実行OSユーザーのプライマリーグループでだけ実行ファイル権限のチェックを行います。
- 注※1
- ルートジョブネット,およびその配下のユニットを待ち合わせ対象ユニットに指定している場合は,起動条件の使用有無に関係なくチェックします。
- プランニンググループ配下のネストジョブネットやジョブを待ち合わせ対象ユニットに指定している場合は,定義不正はチェックされません。
- 待ち合わせ条件による実行順序のループはチェックされません。
- 注※2
- 実行エージェントグループ名が指定されている場合はチェックしません。
- 注※3
- 相対パス,およびUNCパス指定がされた場合はチェックしません。
- 注※4
- マクロ変数を使用できる項目の場合,実際に実行時に展開される内容が判断できないため,マクロ変数が展開された値としてのチェックはしません。
- 注※5
- ワークパスのチェックで不正を検出した場合,相対パス指定はチェックしません。
- 注※6
- PCジョブ(Windowsホストの場合)はチェックしません。
- 注※7
- プロファイルの状態(有効/無効)に関係なく,ajschkdefコマンドで指定したプロファイルの内容に基づいてチェックします。
- 注※8
- 実行エージェントが実行エージェントプロファイルに設定されているかどうかをチェックします。このため,チェック対象のジョブが実行エージェントプロファイルでジョブ実行時に制限確認しない設定(JobExec=off)であっても,チェックします。
- 注※9
- エージェントとマネージャー間の通信で,NAT(ネットワークアドレス変換)を使用している場合には,マネージャーホスト名から解決されたIPアドレスがエージェントホストとマネージャーホストで異なるため,このチェック項目はエラーとなります。設定に問題がなければ,エラーを無視してください。
- 注※10
- MSMQ送信ジョブはUNIX環境で実行できないため,プラットフォームの指定はできません。そのため,プラットフォームに「PC」が指定されたと仮定してチェックします。
(2) 事前チェックの流れ
定義内容の事前チェックの流れを次に示します。
図8-2 定義内容の事前チェックの流れ
(3) 注意事項
定義内容の事前チェックを実施する際の注意事項を次に示します。
- 定義内容の事前チェックは,本番業務が実行中でない時間帯に実行してください。本番業務の実行中に定義内容の事前チェックを実行した場合,次に示す現象が発生するおそれがあります。
- スケジューラーデータベースへのアクセス競合によって,業務実行性能が劣化する
- システムへの負荷が一時的に集中したことによって,ジョブ実行処理でエラーが発生する
- 定義内容の事前チェックを実施するために,マネージャー側のJP1/AJS3サービスを起動しておく必要があります。
- 定義内容の事前チェックの多重実行はできません。
- UNIXジョブで,[スクリプトファイル名]にパラメーターも同時に指定している場合,定義内容の事前チェックではエラーとして検出されます。
- イベントジョブの引き継ぎ情報はチェックの対象外です。
- マクロ変数はチェックの対象外です。
- 環境変数はチェックの対象外です。
- ジョブ実行時変数はチェックの対象外です。
- UNIXの場合,JP1/AJS3 Check Managerサービスは,servicesファイルに設定されている「jp1ajs2chkman」サービスのポート番号を使用しません。
- スクリプトファイルのアクセス権限のチェックでは,運用時とは異なる方法でチェックを実施するため,実際には正常終了するジョブを,定義内容の事前チェックでエラーとして検出する場合があります。
- メッセージKAVS3400~KAVS3431は,「統合トレースログ」または「標準出力」だけに出力されます。
- Windowsで,環境変数ファイル,標準入力ファイル,標準出力ファイル,および標準エラー出力ファイルにフォルダを指定して,キューレスエージェントサービスで実行した場合には正常終了しますが,定義内容の事前チェックではエラーとして検出されます。
- UNIXで,環境変数ファイルにディレクトリを指定して,キューレスエージェントサービスで実行した場合には異常終了しますが,定義内容の事前チェックではエラーとして検出されます。
- ajschkdefコマンドで-Aオプションを指定した場合,実行ファイル権限チェックにジョブ実行OSユーザーの情報が必要なため,「ユーザーマッピング」も前提としてチェックされます。ただし,Windowsの場合,[詳細定義-[PC Job]]ダイアログボックスの[実行時のユーザー]に指定されたユーザーで,OSのログオン確認はチェックしません。
- 次に示す条件が重なる場合は,一時ファイルを作成して定義内容の事前チェックを実施します。
一時ファイルは,上記の条件に該当するジョブの[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]で指定した場所に作成されます。そのため,[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]で指定したファイルの上位ディレクトリは,更新日時が変わることがあります。
- UNIXジョブの[標準出力ファイル名],[標準エラー出力ファイル名],または[転送先ファイル名]に実在しないファイルを指定する
- 上記ジョブを対象に,-Dオプションを指定して定義内容の事前チェックを実施する
なお,一時ファイルはチェック終了後に削除されます。
- 次のユニットおよびその配下のユニットはチェックしません。
- リモートジョブネット
- ホストリンクジョブネット
- マネージャージョブネット
- マネージャージョブグループ
- ジョブネットリリース機能を使用している場合は,リリース状態が「適応中」の定義内容について事前チェックを実施します。リリース状態が「リリース待ち」の定義内容はチェックできませんので,リリース元ジョブネットをチェックしてください。
(4) クラスタ運用時の注意事項
クラスタ運用している場合の,定義内容の事前チェックを実施する際の注意事項を次に示します。
- クラスタ環境で,論理ホスト上のユニットに対して定義内容の事前チェックをする場合は,論理ホストの実行系でチェックを実施してください。待機系ではチェックできません。
- クラスタ環境で,実行系の論理ホスト上のユニットをチェックしているときにフェールオーバーが発生した場合,チェックが中断されます。フェールオーバー後に実行系になった論理ホストでチェックが再開されることはありません。
Copyright (C) 2009, 2014, Hitachi, Ltd.
Copyright (C) 2009, 2014, Hitachi Solutions, Ltd.