制御および初期化コールバックメソッドは、主に、リソースを起動および停止します。その他にも、リソース上で初期化と終了コードを実行します。
START - この必須メソッドは、リソースを含むリソースグループをクラスタノード上でオンラインにするとき、そのノード上で呼び出されます。このメソッドは、そのノード上でリソースを起動します。
ローカルノード上でリソースが起動され、利用可能になるまで、START メソッドは終了してはなりません。したがって、START メソッドは終了する前にリソースをポーリングし、リソースが起動しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、あるリソース (データベースデーモンなど) が起動するのに時間がかかる場合、そのメソッドには十分な長さのタイムアウト値を設定する必要があります。
RGM が START メソッドの失敗に応答する方法は、Failover_mode プロパティの設定によって異なります (表 A-2 を参照)。
リソースの START メソッドのタイムアウト値を設定するには、リソースタイプ登録ファイルの START_TIMEOUT プロパティを使用します。
STOP - この必須メソッドは、リソースを含むリソースグループをクラスタノード上でオフラインにするとき、そのノード上で呼び出されます。このメソッドは、リソースを (アクティブであれば) 停止します。
ローカルノード上でリソースがすべての活動を完全に停止し、すべてのファイル記述子を閉じるまで、STOP メソッドは終了してはなりません。そうしないと、RGM が (実際にはアクティブであるのに) リソースが停止したと判断するため、データが破壊されることがあります。データの破壊を防ぐために最も安全な方法は、ローカルノード上でリソースに関連するすべてのプロセスを停止することです。
STOP メソッドは終了する前にリソースをポーリングし、リソースが停止しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、あるリソース (データベースデーモンなど) が停止するのに時間がかかる場合、そのメソッドには十分長めのタイムアウト値を設定する必要があります。
RGM が STOP メソッドの失敗に応答する方法は、Failover_mode プロパティの設定によって異なります (表 A-2 を参照)。
リソースの STOP メソッドのタイムアウト値を設定するには、リソースタイプ登録ファイルの STOP_TIMEOUT プロパティを使用します。
INIT - この任意メソッドは、リソースを管理下に置くとき (リソースが属しているリソースグループを管理していない状態から管理している状態に切り替えるとき、または、すでに管理されているリソースグループでリソースを作成するとき) に呼び出され、一度だけリソースの初期化を実行します。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。
FINI - この任意メソッドは、リソースを管理下から外すとき (リソースが属しているリソースグループを管理していない状態に切り替えるとき、または、すでに管理されているリソースグループからリソースを削除するとき) に呼び出され、リソースをクリーンアップします。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。
BOOT - この任意メソッドは、INIT と同様にリソースの初期化を実行します。ただし、リソースを含むリソースグループがすでに RGM の管理下に置かれている状態で、新たにクラスタに参加したノード上で呼び出されます。このメソッドは、Init_nodes リソースプロパティが示すノード上で呼び出されます。BOOT メソッドは、起動または再起動の結果とし、ノードがクラスタに結合または再結合したときに呼び出されます。
INIT、FINI、BOOT メソッドが失敗すると、syslog(3) 関数がエラーメッセージを生成しますが、それ以外は RGM のリソース管理に影響しません。