この節では、コールバックメソッドの実装に関する一般的な情報について説明します。
一般に、コールバックメソッドはリソースのプロパティーにアクセスする必要があります。RMAPI は、リソースのシステム定義プロパティーと拡張プロパティーにアクセスするために、コールバックメソッドで使用できるシェルコマンドと C 関数の両方を提供します。scha_resource_get(1HA) および scha_resource_get(3HA) のマニュアルページを参照してください。
DSDL は、システム定義プロパティーにアクセスするための C 関数セット (プロパティーごとに 1 つ) と、拡張プロパティーにアクセスするための関数を提供します。scds_property_functions(3HA) および scds_get_ext_property(3HA) のマニュアルページを参照してください。
Status と Status_msg を除き、リソースプロパティーを設定する API 関数が存在しないため、プロパティー機構を使用して、データサービスの動的な状態情報を格納することはできません。したがって、動的な状態情報は、広域ファイルに格納するようにします。
クラスタ管理者は、scrgadm コマンド、グラフィカル管理コマンド、またはグラフィカル管理インタフェースを使用して、特定のリソースプロパティーを設定することができます。ただし、scrgadm はクラスタの再構築時に (つまり、RGM がメソッドを呼び出した時点で) エラー終了するため、どのようなコールバックメソッドからも scrgadm を呼び出さないようにします。
一般に、RGM は、同じリソース上で同じメソッドを同じ引数で何回も連続して呼び出すことはありません。ただし、Start メソッドが失敗した場合には、リソースが起動していなくても、RGM はそのリソース上で Stop メソッドを呼び出すことができます。同様に、リソースデーモンが自発的に停止している場合でも、RGM はそのリソース上で Stop メソッドを実行できます。Monitor_start メソッドと Monitor_stop メソッドにも、同じことが当てはまります。
このような理由のため、Stop メソッドと Monitor_stop メソッドには、呼び出し回数への非依存性を組み込む必要があります。同じリソース上で、同じ引数を指定して Stop または Monitor_stop を連続して呼び出しても、1 回だけ呼び出したときと同じ結果になります。
呼び出し回数に依存しないということは、リソースまたはモニターがすでに停止し、動作していなくても、Stop メソッドと Monitor_stop メソッドが 0 (成功) を返す必要があるということも意味します。
Init、Fini、Boot、Update の各メソッドも呼び出し回数に依存しない必要があります。Start メソッドは呼び出し回数に依存してもかまいません。