API は、リソース、リソースタイプ、リソースグループのプロパティ、および他のクラスタ情報にアクセスするための関数を提供します。これらの関数はシェルコマンドと C 関数の両方の形で提供されるため、リソースタイプの開発者はシェルスクリプトまたは C プログラムのどちらでも制御プログラムを実装できます。
シェルコマンドは、クラスタの RGM によって制御されるサービスを表すリソースタイプのコールバックメソッドを、シェルスクリプトで実装するときに使用します。このコマンドを使用すると、次のことを行えます。このコマンドを使用すると、次のことを行えます。
リソース、リソースタイプ、リソースグループ、クラスタについての情報にアクセスする。
モニターと併用し、リソースの Status プロパティと Status_msg プロパティを設定する。
リソースグループの再起動と再配置を要求する。
この節では、シェルコマンドについて簡単に説明します。詳細は各コマンドの (1HA) マニュアルページを参照してください。特に注記しない限り、各コマンドと同じ名前のマニュアルページがあります。
以下のコマンドを使用すると、リソースについての情報にアクセスしたり、リソースの Status プロパティや Status_msg プロパティを設定できます。
scha_resource_get(1HA) - RGM の制御下にあるリソースまたはリソースタイプについての情報にアクセスします。このコマンドは、C 関数 scha_resource_get(3HA) と同じ情報を提供します。
scha_resource_setstatus(1HA) - RGM の制御下にあるリソースの Status プロパティと Status_msg プロパティを設定します。このコマンドはリソースのモニターによって使用され、モニターから見たリソースの状態を反映します。このコマンドは、C 関数 scha_resource_setstatus(3HA) と同じ機能を提供します。
scha_resource_setstatus はリソースモニター専用の関数ですが、任意のプログラムから呼び出すことができます。
このコマンドは、RGM に登録されているリソースタイプについての情報にアクセスします。
scha_resourcetype_get(1HA) - このコマンドは、C 関数 scha_resourcetype_get(3HA) と同じ機能を提供します。
以下のコマンドを使用すると、リソースグループについての情報にアクセスしたり、リソースグループを再起動できます。
scha_resourcegroup_get(1HA) - RGM の制御下にあるリソースグループについての情報にアクセスします。 このコマンドは、C 関数 scha_resourcegroup_get(3HA) と同じ機能を提供します。
scha_control(1HA) - RGM の制御下にあるリソースグループの再起動、または、異なるノードへの再配置を要求します。このコマンドは、C 関数 scha_control(3HA) と同じ機能を提供します。
このコマンドは、クラスタについての情報 (ノード名、ノード ID、ノードの状態、クラスタ名、リソースグループなど) にアクセスします。
scha_cluster_get(1HA) - このコマンドは、C 関数 scha_cluster_get(3HA) と同じ情報を提供します。
C 関数は、クラスタの RGM によって制御されるサービスを表すリソースタイプのコールバックメソッドを、C プログラムで実装するときに使用します。この関数を使用すると、次のことを行えます。この関数を使用すると、次のことを行えます。
リソース、リソースタイプ、リソースグループ、クラスタについての情報にアクセスする。
モニターと併用し、リソースの Status プロパティと Status_msg プロパティを設定する。
リソースグループの再起動と再配置を要求する。
エラーコードを適切なエラーメッセージに変換する。
この節では、C 関数について簡単に説明します。詳細は各関数の (3HA) マニュアルページを参照してください。特に注記しない限り、各関数と同じ名前のマニュアルページがあります。
C 関数の出力引数や戻りコードについては、scha_calls(3HA) のマニュアルページを参照してください。
以下の関数は、RGM に管理されているリソースについての情報にアクセスします。モニターから見たリソースの状態を表します。
scha_resource_open(3HA)、scha_resource_get(3HA)、 scha_resource_close(3HA) - これらの関数は一緒に、RGM に管理されているリソースについての情報にアクセスします。scha_resource_open 関数は、リソースへのアクセスを初期化し、scha_resource_get のハンドルを戻します。scha_resource_get 関数は、リソースの情報にアクセスします。scha_resource_close 関数は、ハンドルを無効にし、scha_resource_get の戻り値に割り当てられているメモリーを解放します。
scha_resource_open 関数がリソースのハンドルを戻した後に、クラスタの再構成や管理アクションによって、リソースが変更されることがあります。この場合、scha_resource_get 関数がハンドルを通じて獲得した情報は正しくない可能性があります。ソース上でクラスタの再構成や管理アクションが行われた場合、RGM は scha_err_seqid エラーコードを scha_resource_get 関数に戻し、リソースが変更されたことを示します。このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、リソースの情報にアクセスし直してもかまいません。
これら 3 つの関数は 1 つのマニュアルページ内で説明しています。このマニュアルページには、個々の関数名 scha_resource_open(3HA)、scha_resource_get(3HA)、 scha_resource_close(3HA) でアクセスできます。
scha_resource_setstatus(3HA) - RGM の制御下にあるリソースの Status プロパティと Status_msg プロパティを設定します。この関数はリソースのモニターによって使用され、モニターから見たリソースの状態を反映します。
scha_resource_setstatus はリソースモニター専用の関数ですが、任意のプログラムから呼び出すことができます。
これらの関数は一緒に、RGM に登録されているリソースタイプについての情報にアクセスします。
scha_resourcetype_open(3HA)、scha_resourcetype_get(3HA)、 scha_resourcetype_close(3HA)- scha_resourcetype_open 関数は、リソースタイプへのアクセスを初期化し、scha_resourcetype_get のハンドルを戻します。scha_resourcetype_get 関数は、リソースタイプの情報にアクセスします。scha_resourcetype_close 関数は、ハンドルを無効にし、scha_resourcetype_get の戻り値に割り当てられているメモリーを解放します。
scha_resourcetype_open 関数がリソースタイプのハンドルを戻した後に、クラスタの再構成や管理アクションによって、リソースタイプが変更されることがあります。この場合、scha_resourcetype_get 関数がハンドルを通じて獲得した情報は正しくない可能性があります。リソースタイプ上でクラスタの再構成や管理アクションが行われた場合、RGM は scha_err_seqid エラーコードを scha_resourcetype_get 関数に戻し、リソースタイプが変更されたことを示します。このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、リソースタイプの情報にアクセスし直してもかまいません。
これら 3 つの関数は 1 つのマニュアルページ内で説明しています。このマニュアルページには、個々の関数名 scha_resourcetype_open(3HA)、scha_resourcetype_get(3HA)、 scha_resourcetype_close(3HA) でアクセスできます。
以下の関数を使用すると、リソースグループについての情報にアクセスしたり、リソースグループを再起動できます。
scha_resourcegroup_open(3HA)、scha_resourcegroup_get(3HA)、 scha_resourcegroup_close(3HA)-これらの関数は一緒に、RGM に管理されているリソースグループについての情報にアクセスします。scha_resourcegroup_open 関数は、リソースグループへのアクセスを初期化し、scha_resourcegroup_get のハンドルを戻します。scha_resourcegroup_get 関数は、リソースグループの情報にアクセスします。scha_resourcegroup_close 関数は、ハンドルを無効にし、scha_resourcegroup_get の戻り値に割り当てられているメモリーを解放します。
scha_resourcegroup_open 関数がリソースグループのハンドルを戻した後に、クラスタの再構成や管理アクションによって、リソースグループが変更されることがあります。この場合、scha_resourcegroup_get 関数がハンドルを通じて獲得した情報は正しくない可能性があります。リソースグループ上でクラスタの再構成や管理アクションが行われた場合、RGM は scha_err_seqid エラーコードを scha_resourcegroup_get 関数に戻し、リソースグループが変更されたことを示します。このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、リソースグループの情報にアクセスし直してもかまいません。
これら 3 つの関数は 1 つのマニュアルページ内で説明しています。このマニュアルページには、個々の関数名 scha_resourcegroup_open(3HA)、scha_resourcegroup_get(3HA)、 scha_resourcegroup_close(3HA) でアクセスできます。
scha_control(3HA)- RGM の制御下にあるリソースグループの再起動、または、異なるノードへの再配置を要求します。
以下の関数は、クラスタについての情報にアクセスし、その情報を戻します。
scha_cluster_open(3HA)、scha_cluster_get(3HA)、 scha_cluster_close(3HA) - これらの関数は一緒に、クラスタについての情報 (ノード名、ノード ID、ノードの状態、クラスタ名、リソースグループなど) にアクセスします。
これら 3 つの関数は 1 つのマニュアルページ内で説明しています。このマニュアルページには、個々の関数名 scha_cluster_open(3HA)、scha_cluster_get(3HA)、scha_cluster_close(3HA) でアクセスできます。
scha_cluster_open 関数がクラスタのハンドルを戻した後に、再構成や管理アクションによって、クラスタが変更されることがあります。この場合、scha_cluster_get 関数がハンドルを通じて獲得した情報は正しくない可能性があります。クラスタ上でクラスタの再構成や管理アクションが行われた場合、RGM は scha_err_seqid エラーコードを scha_cluster_get 関数に戻し、クラスタが変更されたことを示します。このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、クラスタの情報にアクセスし直してもかまいません。
scha_cluster_getlogfacility(3HA) - クラスタログとして使用されているシステムログ機能番号を戻します。戻された番号を Solaris の syslog(3) 関数で使用すると、イベントと状態メッセージをクラスタログに記録できます。
scha_cluster_getnodename(3HA) - 関数が呼び出されるクラスタノードの名前を戻します。
この関数は、エラーコードをエラーメッセージに変換します。
scha_strerror(3HA) - scha_ 関数の 1 つから戻されるエラーコードを適切なエラーメッセージに変換します。この関数を logger(1) と共に使用すると、メッセージをシステムログ (syslog(3)) に記録できます。