Sun Cluster データサービス開発ガイド (Solaris OS 版)

制御および初期化コールバックメソッド

制御および初期化コールバックメソッドは、主に、リソースを起動および停止します。その他にも、リソース上で初期化と終了コードを実行します。

Start

この必須メソッドは、リソースを含むリソースグループがクラスタノード上でオンラインになったとき、そのクラスタノード上で呼び出されます。このメソッドは、そのノード上でリソースを起動します。

Start メソッドは、ローカルノード上でリソースが起動し、使用可能な状態になるまで終了してはなりません。したがって、Start メソッドは終了する前にリソースをポーリングし、リソースが起動しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、あるリソース (データベースデーモンなど) が起動するのに時間がかかる場合、そのメソッドには十分な長さのタイムアウト値を設定する必要があります。

RGM が Start メソッドの失敗に応答する方法は、Failover_mode プロパティの設定によって異なります。

リソースの Start メソッドのタイムアウト値を設定するには、リソースタイプ登録ファイルの START_TIMEOUT プロパティを使用します。

Stop

この必須メソッドは、リソースを含むリソースグループがクラスタノード上でオフラインになったとき、そのクラスタノード上で呼び出されます。このメソッドは、リソースを (アクティブであれば) 停止します。

Stop メソッドは、ローカルノード上でリソースがすべての活動を完全に停止し、すべてのファイル記述子を終了するまで終了してはなりません。そうしないと、RGM が (実際にはアクティブであるのに) リソースが停止したと判断するため、データが破壊されることがあります。データの破壊を防ぐために最も安全な方法は、ローカルノード上でリソースに関連するすべてのプロセスを停止することです。

Stop メソッドは終了する前にリソースをポーリングし、リソースが停止しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、あるリソース (データベースデーモンなど) が停止するのに時間がかかる場合、そのメソッドには十分長めのタイムアウト値を設定する必要があります。

RGM が Stop メソッドの失敗に応答する方法は、Failover_mode プロパティの設定によって異なります (「リソースのプロパティ」 を参照)。

リソースの Stop メソッドのタイムアウト値を設定するには、リソースタイプ登録ファイルの STOP_TIMEOUT プロパティを使用します。

Init

このオプションメソッドは、リソースを管理下に置くとき (リソースが属しているリソースグループを管理していない状態から管理している状態に切り替えるとき、またはすでに管理されているリソースグループでリソースを作成するとき)、1 回だけ呼び出され、リソースの初期化を実行します。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。

Fini

このオプションメソッドは、リソースを管理下から外すとき (リソースが属しているリソースグループを管理していない状態に切り替えるとき、またはすでに管理されているリソースグループからリソースを削除するとき) に呼び出され、リソースをクリーンアップします。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。

Boot

このオプションメソッドは、Init と同様に、リソースの所属リソースグループが RGM の管理下に置かれたあと、クラスタを結合するノード上のリソースを初期化します。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。Boot メソッドは、起動または再起動の結果とし、ノードがクラスタに結合または再結合したときに呼び出されます。


注 –

InitFiniBoot メソッドが失敗すると、syslog() 関数がエラーメッセージを生成しますが、それ以外は RGM のリソース管理に影響しません。