16.2.1 JP1/AJS2 - Managerに障害が発生した場合のフェールオーバー
JP1/AJS2 - Managerに障害が発生し,フェールオーバーが実行された場合の処理の流れと,起動条件またはイベントジョブが定義されている場合の情報の引き継ぎについて説明します。
- <この項の構成>
- (1) フェールオーバー後の処理の流れ
(1) フェールオーバー後の処理の流れ
業務運用中にJP1/AJS2 - Managerにフェールオーバーが発生した場合の処理を次の図に示します。
図16-1 JP1/AJS2 - Managerにフェールオーバーが発生した場合の処理
![[図データ]](figure/zud16040.gif)
システムの処理の流れを次に示します。
- フェールオーバー発生時に,JP1/AJS2 - Managerで処理が実行されていたジョブネットおよびジョブを強制終了する。また,JP1/AJS2 - Agentで処理が実行されていたジョブネットおよびジョブを「実行中」のままとする。
この状態は,共有ディスクのJP1/AJS2データベースで管理しています。
- JP1/AJS2データベースの内容を待機系に引き継ぐ。
- 待機系マネージャーのJP1/AJS2 - Managerサービスを起動する。
- サービス起動モードに従って,JP1/AJS2サービス起動時に自動的にジョブやジョブネットの状態を変更する。
サービス起動モードを確認する方法を次に示します。
- Windowsホストの場合
- [マネージャー環境設定]ダイアログボックスの[スケジューラーオプション]タブの[サービス起動モード]を確認してください。
- UNIXホストの場合
- 次に示すコマンドを実行し,環境設定パラメーターSTARTMODEに出力されている起動モードを確認してください。
- /opt/jp1base/bin/jbsgetcnf -h {JP1_DEFAULT|論理ホスト名}※ ¥
- -c JP1AJSMANAGER ¥
- -n スケジューラーサービス名
- 注※
- {JP1_DEFAULT|論理ホスト名}の部分は,物理ホストの場合は「JP1_DEFAULT」を,論理ホストの場合は「論理ホスト名」を指定します。
サービス起動モードごとに,状態変更と変更後のシステムの処理の流れを説明します。
- サービス起動モードで「コールドスタート」を指定している場合
フェールオーバー直前のジョブネットおよびジョブの定義情報だけを引き継ぎ,ジョブネットをすべて「未登録」状態に変更します。運用を再開するには,ジョブネットを再実行登録してください。
コールドスタートは,運用するジョブが同時に起動されたり,2回実行されたりしても支障がない場合で,オペレーターが確認するよりも,最初からやり直した方が安全な場合に使用してください。
- サービス起動モードで「ウォームスタート」を指定している場合
フェールオーバー直前の状態を引き継ぎます。状態が「実行待ち」,「キューイング」,「実行中」となっていたジョブの状態をサービス起動時の実際の状態に変更します。ただし,ジョブが実行されていなかった場合は,「未実行終了」に,ジョブが実行されていた場合,またはジョブの実際の状態が取得できなかった場合は,「終了状態不明」になります。
ジョブネットの状態は,「中断」になります。
開始されていなかったジョブネットは予定どおり運用されますが,ウォームスタートによって異常終了したジョブネットは,状態の変更を確認したあと,手動で再実行してください。起動条件を監視していた場合,障害発生前に受信したイベントの情報を引き継ぎます。
ウォームスタートは,実行中だったジョブの状態を確認し,オペレーターの判断で運用を継続したい場合に使用してください。
- サービス起動モードで「自動継続」を指定している場合
フェールオーバー直前の状態を引き継ぎ,「実行中」となっていたジョブの情報を,ジョブ実行先サーバから求めて,できるだけ実際の状態に自動的に変更します。
ジョブの実際の状態が取得できた場合は,ジョブネットは再実行操作を行うことなく,ジョブネットの定義内容に従って自動的に継続実行します。起動条件を監視していた場合,障害発生前に受信したイベントの情報を引き継ぎます。
ジョブ実行先サーバから情報を求められなかった場合は,ジョブの状態を「異常終了」とします。この場合は,ジョブの状態を確認し,手動で再実行してください。
自動継続は,フェールオーバー後も継続して運用を行いたい場合に指定してください。
なお,サービス起動モードを設定する手順については,次の個所を参照してください。
- Windowsホストの場合
- マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 4.1.5 スケジューラーオプションを定義する」
- UNIXホストの場合
- マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 14.1.1 スケジューラーサービス環境の設定手順」
- マニュアル「JP1/Automatic Job Management System 2 セットアップガイド 14.1.3 スケジューラーサービス環境設定パラメーターの定義内容」
- 4で状態が変更されたジョブ・ジョブネットに対して,必要に応じて手動で再実行し,引き続き業務を運用する。
- 起動条件を変更したときのクラスタ運用
- 運用中に起動条件を変更した場合,変更内容が有効になるのは次回実行予定からとなります。そのため,実行系のJP1/AJS2 - Managerにフェールオーバーが発生した場合,待機系に処理が切り替わっても,変更前の起動条件で監視を続けます。
- 例えば,スケジュールルール(1)では11:00,スケジュールルール(2)では13:00に,開始時刻が定義されていたとします。
- 起動条件を11:30に変更した場合,(1)は変更前の起動条件で,(2)は変更後の起動条件で監視します。
- 11:00~12:00の間にフェールオーバーが発生した場合,(1)は変更前の起動条件で監視を引き継ぎます(ただし,再起動後が有効時間内の場合に限ります)。(2)は変更後の起動条件で監視します。
- サブミットジョブ実行時のクラスタ運用
- ジョブ実行制御のコマンドによって登録されたサブミットジョブの実行中にフェールオーバーが発生した場合,JP1/AJS2 - Managerで処理を実行していたジョブは強制終了します。ただし,ジョブの終了通知を受信できなかった場合は,サブミット時の設定内容に従って,実行待ち,保留,または強制終了の状態になります。jpqjobsubコマンドの場合は,-rsオプションで指定した状態になります。デフォルトは保留状態です。
- JP1/AJS2 - View接続時のクラスタ運用
- ajsmonsvrプロセスは,JP1/AJS2 - Viewからの接続によって生成されるプロセスです。フェールオーバー時に,共有ディスクにアクセスしているajsmonsvrプロセスが残存していると,共有ディスクをアンマウントできません。ajsmonsvrプロセスを停止するには,ajsinetdプロセスを停止してください。
- なお,クラスタミドルソフトでは,フェールオーバー時に共有ディスクにアクセスしているプロセスを強制終了します。したがって,ajsinetdプロセスを明示的に停止する必要はありません。ただし,プロセスを強制終了した場合にメッセージが表示されるなど運用上好ましくないときは,ajsinetdプロセスを停止してください。
- JP1/AJS2 Consoleを使用したクラスタ運用
- JP1/AJS2 Consoleのプロセスは,フェールオーバー時に次のように終了するため,すぐには終了しないでしばらく残る場合があります。すぐにプロセスを終了したい場合は,フェールオーバー時にクラスタソフトからJP1/AJS2 Consoleのサービスを再起動(停止および起動)するように設定してください。
- JP1/AJS2 Console Managerの場合
JP1/AJS2 Console Viewから接続を受けて動作するajscmmonsvrプロセス,ajscmstatdプロセスが残ります。これらは共有ディスクを使用しているため,クラスタソフトが共有ディスクをオフラインにする際に強制終了されます(クラスタソフトの仕様に依存します)。または,通信エラーを検知してから自動的に停止します。
- JP1/AJS2 Console Agentの場合
JP1/AJS2 Console Managerから接続を受けて動作するajscagtdプロセスが残ります。これは,通信エラーを検知してから自動的に停止します。