JP1/AJS2が何らかの理由によって停止すると,ジョブが実行できなくなり,分散システムの業務に影響を及ぼします。ここでは,JP1/AJS2に障害が発生した場合に素早く検知して対処する手段について説明します。
JP1/AJS2では,障害が発生して次の「JP1/AJS2サービス内のプロセスの関連」に示すプロセスが停止した場合,JP1/AJS2サービスは標準で次のような動作をします。
JP1/AJS2内でプロセスの優先順位を持ち,優先順位の低いプロセスが停止しても優先順位の高いプロセスは停止しないで,縮退運転を行います。
JP1/AJS2サービス内のプロセスは,jajs_spmd_statusコマンドで表示できます。
jajs_spmd_statusコマンドで表示されるJP1/AJS2サービス内のプロセスの関連を次の表に示します。1が優先順位の高いプロセス,5が優先順位の低いプロセスになります。なお,この節で記載しているプロセスは,次の表のプロセスのどれかを指します。
表15-22 jajs_spmd_statusコマンド実行時に表示されるプロセスと優先順位
優先順位 | Windowsホストのプロセス | UNIXホストのプロセス |
---|---|---|
1 | qlcltd※1 | なし |
2 | queue | jpqmon |
3 | evactionm※2 | jpomanager※2 |
4 | evactiona | jpoagent |
5 | ajsovstatd※2,※3 | ajsovstatd※2,※3 |
6 | schedule※2 | ajsmasterd※2 |
- | gatewayd※2,※4 | ajsgwmasterd※2,※4 |
(凡例) -:関連なし
優先順位の低いプロセスが停止した場合でも,優先順位の高いプロセス(ジョブ実行・イベントジョブ機能)は停止しません。このため,ajsmasterdプロセスが停止した場合でも,他ホストからの実行要求によるジョブ・イベントジョブの実行は継続できます。
なお,ajsgwmasterdは,他プロセスと関連を持ちません。したがって,ajsgwmasterdの停止が他プロセスに影響を与えたり,他プロセスの停止がajsgwmasterdに影響を与えたりすることはありません。
現在JP1/AJS2サービスが縮退運転しているかどうかもjajs_spmd_statusコマンドで確認できます。
また,jajs_spmdコマンドに-HAオプションを指定した場合,およびクラスタ構成時の論理ホストのJP1/AJS2サービスに障害が発生した場合は,縮退運転は行いません。JP1/AJS2サービスの上記のどれかのプロセスが停止しても,JP1/AJS2サービス全体が停止します。
物理ホスト上のJP1/AJS2で縮退運転をさせないで,異常を検知するためにはjajs_spmdコマンドに-HAオプションを指定して起動してください。JP1/AJS2サービス全体を停止できます。
また,上記動作のほかに障害発生時に障害を検知して対処する手段として,プロセスが異常終了した場合に自動で再起動する機能と,プロセスの異常を検知した場合にJP1イベントを発行する機能を提供しています。これらの機能をあらかじめ設定しておくことで,プロセスが異常終了した場合,自動的に異常終了したプロセスを再起動させたり,JP1イベントを発行させたりすることができます。
JP1イベントを発行する場合は,発行されたJP1イベントを契機として,JP1/IMなどの他のプログラムと組み合わせて自動的に連絡する処理を実行できます。
プロセスが異常終了した場合に自動で再起動する機能,およびプロセスの異常を検知した場合にJP1イベントを発行する機能については以降の項を参照してください。