Resource Group Manager (RGM) は、リソースグループを管理し、最終的にはクラスタ上のリソースも管理します。RGM は、コールバックモデル上で動作します。つまり、特定のイベント (ノードの障害など) が発生したとき、RGM は、当該ノード上で動作しているリソースごとにリソースタイプのメソッドを呼び出します。たとえば、RGM は Stop メソッドを呼び出して、当該ノード上で動作しているリソースを停止します。次に、Stop メソッドを呼び出して、異なるノード上でリソースを起動します。このモデルの詳細は、「RGM モデル」, 「コールバックメソッド」と、rt_callbacks(1HA) のマニュアルページを参照してください。
このモデルをサポートするために Agent Builder は、8 つの実行可能 C プログラムまたは Korn シェルスクリプトを install-directory/rt-name/bin ディレクトリに生成します。これらのプログラムまたはシェルスクリプトは、コールバックメソッドとして機能します。
厳密には、障害モニターを実装する rt-name_probe プログラムはコールバックプログラムではありません。RGM は、rt-name_probe を直接呼び出すのではなく、rt-name_monitor_start と rt-name_monitor_stop を呼び出します。これらのメソッドが rt-name_probe を呼び出すことによって、障害モニターの起動と停止が行われます。
Agent Builder が生成する8 つのメソッドは次のとおりです。
rt-name_monitor_check
rt-name_monitor_start
rt-name_monitor_stop
rt-name_probe
rt-name_svc_start
rt-name_svc_stop
rt-name_update
rt-name_validate
各メソッドに固有な情報については、rt_callbacks(1HA) のマニュアルページを参照してください。
Agent Builder は、install-directory/ rt-name/src ディレクトリ (C 出力の場合) に、次のファイルを生成します。
ヘッダーファイル (rt-name.h)
すべてのメソッドに共通するコードが記述されているソースファイル (rt-name.c)
共通するコード用のオブジェクトファイル (rt-name.o)
各メソッド用のソースファイル (*.c)
各メソッド用のオブジェクトファイル (*.o)
Agent Builder は、rt-name.o ファイルを各メソッドの .o ファイルにリンクして、実行可能ファイルを install-directory/rt-name /bin ディレクトリに作成します。
Korn シェル出力の場合、install-directory/ rt-name/bin ディレクトリと install-directory /rt-name/src ディレクトリの内容は同じです。それぞれのディレクトリには、7 つのコールバックメソッドと Probe メソッドに対応する 8 つの実行可能スクリプトが含まれています。
Korn シェル出力には、2 つのコンパイル済みユーティリティープログラム gettime と gethostnames が含まれています。これらのプログラムは、特定のコールバックメソッドが時間の取得や、検証を行う際に必要です。
ソースコードを編集して、make コマンドを実行すると、コードを再コンパイルできます。さらに、再コンパイル後、make pkg コマンドを実行すると、新しいパッケージを生成できます。ソースコードの修正をサポートするために、Agent Builder はソースコード中の適切な場所に、コードを追加するためのコメント文を埋め込みます。「生成されたソースコードの編集」を参照してください。