6.1.4 リソースマネジャモニタの運用
リソースマネジャモニタ(RMM)の機能を使用するには,プログラムプロダクトTP1/Resource Manager Monitorをインストールしておく必要があります。
- 〈この項の構成〉
(1) 監視対象リソースマネジャ用コマンド作成時の注意
監視対象リソースマネジャ用コマンドは,ユーザが作成し,監視対象RM定義で指定します。監視対象リソースマネジャ用コマンド作成時の注意事項を示します。
(a) 開始コマンド
開始コマンドは,次に示す条件を満たすように作成してください。
-
コマンド終了時には,終了コマンドを実行できる状態になっていること。
-
コマンド終了時には,すべての監視対象プロセスが起動を完了していること。
-
コマンド終了時には,監視対象リソースマネジャとして処理を監視できる状態になっていること。
-
exit()の終了コードが"0"の場合は正常終了し,"0"以外の場合は異常終了となること。
RMMサービスは開始コマンドの処理が終了するのを待って,exit()の終了コードが"0"の場合は正常終了,"0"以外の場合は異常終了と判断します。
なお,開始コマンドが正常終了しても,監視対象プロセスのプロセスIDの取得処理に失敗した場合,開始処理は失敗となります。また,OpenTP1が開始コマンドの終了を時間監視しているため,監視時間を超えた場合も開始処理は失敗となります。
(b) 終了コマンド
終了コマンドは,次に示す条件を満たすように作成してください。
-
コマンド終了時には,開始コマンドを実行できる状態になっていること。
-
コマンド終了時には,すべての監視対象プロセスが終了していること。
-
コマンド終了時には,監視対象リソースマネジャのシステムリソースを解放していること。
-
exit()の終了コードが"0"の場合は正常終了し,"0"以外の場合は異常終了となること。
RMMサービスは終了コマンドの処理が終了するのを待って,exit()の終了コードが"0"の場合は正常終了,"0"以外の場合は異常終了と判断します。
なお,終了コマンドが正常終了しても,監視対象プロセスがまだある場合は,終了処理は失敗となります。また,OpenTP1が終了コマンドの終了を時間監視しているため,監視時間を超えた場合も終了処理は失敗となります。
(c) 強制停止コマンド
強制停止コマンドは,次に示す条件を満たすように作成してください。
-
コマンド終了時には,開始コマンドを実行できる状態になっていること。
-
コマンド終了時には,監視対象リソースマネジャのシステムリソースを解放していること。
-
exit()の終了コードが"0"の場合は正常終了し,"0"以外の場合は異常終了となること。
強制停止コマンドは,監視対象プロセスがない状態でも実行できます。
RMMサービスは強制停止コマンドの処理が終了するのを待って,exit()の終了コードが"0"の場合は正常終了,"0"以外の場合は異常終了と判断します。
なお,強制停止コマンドが正常終了しても,監視対象プロセスがまだある場合は,強制停止処理は失敗となります。また,OpenTP1が強制停止コマンドの終了を時間監視しているため,監視時間を超えた場合も強制停止処理は失敗となります。
(d) 監視対象プロセスID取得コマンド
-
監視対象プロセスID取得コマンドの作成
監視対象プロセスID取得コマンドは,次に示す条件を満たすように作成してください。
-
すべての監視対象プロセスのプロセスIDを標準出力に出力すること。
-
プロセスIDの出力形式は,次の図に示すようにすること。
図6‒1 プロセスIDの出力形式 -
exit()の終了コードによって,次の状態をRMMサービスに連絡できること。
0:監視対象リソースマネジャはすでに処理中です。
1:監視対象リソースマネジャは正常な状態ではありません。
2:監視対象リソースマネジャは停止中です。
RMMでは,監視対象プロセスID取得コマンドのモデルとなるコマンドを,rmmoraidとして提供しています。rmmoraidコマンドは次に示す条件を満たすように作成されています。
-
すべての監視対象プロセスのプロセスIDを標準出力に出力します。
-
出力形式は,図6-1に従います。
-
プロセス名をコマンド中に記述すれば,そのプロセスのプロセスIDを,/bin/psを使用して取得します。
-
exit()の終了コードの意味を次に示します。
0:監視対象プロセスIDをすべて取得しました。
1:監視対象プロセスIDが一部ありません。
2:監視対象プロセスIDが全部ありません。
-
-
監視対象リソースマネジャの再起動
監視対象リソースマネジャに,障害時の自動全面回復機能がある場合は,RMMサービスでその監視対象リソースマネジャを再起動させる必要はありません。障害時は,その監視対象リソースマネジャの機能で自動的に全面回復します。プロセスID取得コマンドの標準出力の最初に0を出力してください。これによってRMMサービスが,監視対象リソースマネジャの全面回復をすることはありません。
監視対象リソースマネジャの機能で自動全面回復する場合,次の条件を満たしてください。
-
監視対象のプロセスは一つだけ
-
exit()の終了コードは0または2
プロセスID取得コマンドのexit()の終了コード0で終了したとき,RMMサービスは監視対象リソースマネジャの自動全面回復終了と判断します。
プロセスID取得コマンドの標準出力の出力形式を次の図に示します。
図6‒2 プロセスID取得コマンドの標準出力の出力形式 -
(e) そのほか
-
RMMサービスでは,ORACLE用の定義に使用できる,次の四つのコマンドを用意しています。
開始コマンド:$DCDIR/etc/RMmonitor/rmmorast
終了コマンド:$DCDIR/etc/RMmonitor/rmmorasp
強制停止コマンド:$DCDIR/etc/RMmonitor/rmmoraab
プロセスID取得コマンド:$DCDIR/etc/RMmonitor/rmmoraid
これらのコマンドは,すべてボーンシェルによってシェルスクリプトで実現されます。これらの変更可能領域には"# CHANGEABLE"と書かれていますので,それらの行を各環境に合わせて変更,記述してください。
-
RMMサービスでは,HiRDB(シングルモード)の定義に使用できる,次の四つのコマンドを用意しています。
開始コマンド:$DCDIR/etc/RMmonitor/rmmhirst
終了コマンド:$DCDIR/etc/RMmonitor/rmmhirsp
強制停止コマンド:$DCDIR/etc/RMmonitor/rmmhirab
プロセスID取得コマンド:$DCDIR/etc/RMmonitor/rmmhirid
これらのコマンドは,すべてボーンシェルによってシェルスクリプトで実現されます。これらの変更可能領域には"# CHANGEABLE"と書かれていますので,それらの行を各環境に合わせて変更,記述してください。
-
HiRDBは,障害時の自動全面回復機能があります。プロセスID取得コマンドの標準出力の最初に0を出力してください。障害時は,HiRDBが全面回復します。
-
作成されたシェルスクリプトは,RMMサービスによってfork&execされるため,通常のシェルから実行される場合と,次の七つの点で異なります。
-
環境変数として,次の変数があらかじめ設定されています。
DCSVNAME:"_rmm"(変更不可)
DCDIR:OpenTP1に対して設定したもの(変更不可)
DCCONFPATH:OpenTP1に対して設定したもの(変更不可)
LANG:OpenTP1に対して設定したもの(変更可)
TZ:OSのデフォルト値(変更可)
PATH:プロセスサービス定義のprcsvpathの指定に従う(変更可)
-
カレントディレクトリは$DCDIR/tmp/home/_rmm.×××(×××はRMMサービスのプロセスID)です。
-
プロセスの標準入力,標準出力,および標準エラー出力はコンソールです。
-
ユーザID,およびグループIDは,監視対象RM定義に従います。
-
制御端末はありません。
-
umaskは000です。
-
シグナル受信時の動作はすべてOSのデフォルトのものです。
上記の内容は,シェルスクリプト中で使用するコマンド,および起動されるプロセスに対して影響します。上記の内容に関して設定値以外のものにしたい場合は,シェルスクリプト中,またはユーザが用意したコマンド中で,変更してください。
-