Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 運用と操作


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取得コマンド

  1. 監視対象プロセス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が全部ありません。

  2. 監視対象リソースマネジャの再起動

    監視対象リソースマネジャに,障害時の自動全面回復機能がある場合は,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されるため,通常のシェルから実行される場合と,次の七つの点で異なります。

    1. 環境変数として,次の変数があらかじめ設定されています。

      DCSVNAME:"_rmm"(変更不可)

      DCDIR:OpenTP1に対して設定したもの(変更不可)

      DCCONFPATH:OpenTP1に対して設定したもの(変更不可)

      LANG:OpenTP1に対して設定したもの(変更可)

      TZ:OSのデフォルト値(変更可)

      PATH:プロセスサービス定義のprcsvpathの指定に従う(変更可)

    2. カレントディレクトリは$DCDIR/tmp/home/_rmm.×××(×××はRMMサービスのプロセスID)です。

    3. プロセスの標準入力,標準出力,および標準エラー出力はコンソールです。

    4. ユーザID,およびグループIDは,監視対象RM定義に従います。

    5. 制御端末はありません。

    6. umaskは000です。

    7. シグナル受信時の動作はすべてOSのデフォルトのものです。

    上記の内容は,シェルスクリプト中で使用するコマンド,および起動されるプロセスに対して影響します。上記の内容に関して設定値以外のものにしたい場合は,シェルスクリプト中,またはユーザが用意したコマンド中で,変更してください。