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

RMAPI アクセスメソッド

API は、リソース、リソースタイプ、リソースグループのプロパティ、および他のクラスタ情報にアクセスするための関数を提供します。 これらの関数はシェルコマンドと C 関数の両方の形で提供されるため、リソースタイプの開発者はシェルスクリプトまたは C プログラムのどちらでも制御プログラムを実装できます。

RMAPI シェルコマンド

シェルコマンドは、クラスタの RGM によって制御されるサービスを表すリソースタイプのコールバックメソッドを、シェルスクリプトで実装するときに使用します。 このコマンドを使用すると、次のことを行えます。


注 –

この節では、シェルコマンドについて簡単に説明します。詳細については、個々のマニュアルページのセクション 1HA を参照してください。 特に注記しないかぎり、各コマンドと同じ名前のマニュアルページがあります。


RMAPI リソースコマンド

以下のコマンドを使用すると、リソースについての情報にアクセスしたり、リソース の Status プロパティや Status_msg プロパティを設定できます。

scha_resource_get

RGM の制御下のリソースまたはリソースタイプに関する情報にアクセスできます。 このコマンドは、scha_resource_get() 関数と同じ情報を提供します。

scha_resource_setstatus

RGM の制御下のリソースの Status および Status_msg プロパティを設定します。 このコマンドはリソースのモニターによって使用され、モニターから見たリソースの状態を反映します。 このコマンドは、C 関数 scha_resource_setstatus() と同じ機能を提供します。


注 –

scha_resource_setstatus() はリソースモニター専用の関数ですが、任意のプログラムから呼び出すことができます。


リソースタイプコマンド

このコマンドは、RGM に登録されているリソースタイプについての情報にアクセスします。

scha_resourcetype_get

このコマンドは、C 関数 scha_resourcegroup_get() と同じ機能を提供します。

リソースグループコマンド

以下のコマンドを使用すると、リソースグループについての情報にアクセスしたり、リソースグループを再起動できます。

scha_resourcegroup_get

RGM の制御下のリソースグループに関する情報にアクセスできます。 このコマンドは、C 関数 scha_resourcegroup_get() と同じ機能を提供します。

scha_control

RGM の制御下のリソースグループの再起動、または別のノードへの再配置を要求します。 このコマンドは、C 関数 scha_control() と同じ機能を提供します。

クラスタコマンド

このコマンドは、クラスタについての情報 (ノード名、ノード ID、ノードの状態、クラスタ名、リソースグループなど) にアクセスします。

scha_cluster_get

このコマンドは、C 関数 scha_cluster_get() と同じ情報を提供します。

C 関数

C 関数は、クラスタの RGM によって制御されるサービスを表すリソースタイプのコールバックメソッドを、C プログラムで実装するときに使用します。 この関数を使用すると、次のことを行えます。


注 –

この節では、C 関数について簡単に説明します。詳細については、各関数の (3HA) マニュアルページを参照してください。 特に注記しないかぎり、各関数と同じ名前のマニュアルページがあります。 C 関数の出力関数および戻りコードについては、scha_calls (3HA) のマニュアルページを参照してください。


リソース関数

以下の関数は、RGM に管理されているリソースについての情報にアクセスします。モニターから見たリソースの状態を表します。

scha_resource_open()scha_resource_get ()scha_resource_close()

これらの関数は、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_resourcegroup_get() 関数に戻し、リソースが変更されたことを示します。 このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。 したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、リソースの情報にアクセスし直してもかまいません。

これら 3 つの関数は 1 つのマニュアルページ内で説明しています。 このマニュアルページには、個々の関数名 scha_resource_open(3HA)、scha_resource_get(3HA) scha_resource_close (3HA) でアクセスできます。

scha_resource_setstatus()

RGM の制御下のリソースの Status および Status_msg プロパティを設定します。 この関数はリソースのモニターによって使用され、モニターから見たリソースの状態を反映します。


注 –

scha_resource_setstatus() はリソースモニター専用の関数ですが、任意のプログラムから呼び出すことができます。


リソースタイプ関数

これらの関数は、RGM に登録されているリソースタイプについての情報にアクセスします。

scha_resourcetype_open() scha_resourcetype_get()scha_resourcetype_close()

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_get3HA 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() 関数に戻し、リソースグループが変更されたことを示します。 このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。 したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、リソースグループの情報にアクセスし直してもかまいません。

scha_control(3HA)

RGM の制御下のリソースグループの再起動、または別のノードへの再配置を要求します。

クラスタ関数

以下の関数は、クラスタについての情報にアクセスし、その情報を戻します。

scha_cluster_open(3HA) scha_cluster_get(3HA)scha_cluster_close(3HA)

これらの関数は、ノード名、ID、状態、クラスタ名、リソースグループなど、クラスタに関する情報にアクセスします。

scha_cluster_open() 関数がクラスタのハンドルを戻したあとに、再構成や管理アクションによって、クラスタが変更されることがあります。この場合、scha_cluster_get() 関数がハンドルを通じて獲得した情報は正しくない可能性があります。 クラスタで再構成や管理アクションが行われた場合、RGM は scha_err_seqid エラーコードを scha_cluster_get() 関数に戻し、クラスタが変更されたことを示します。 このメッセージは致命的なエラーメッセージではないため、関数は正常に終了します。 したがって、このメッセージは無視してもかまいません。また、現在のハンドルを閉じて新しいハンドルを開き、クラスタの情報にアクセスし直してもかまいません。

scha_cluster_getlogfacility (3HA)

クラスタログとして使用されるシステムログ機能の数を戻します。 戻された番号を Solaris の syslog() 関数で使用すると、イベントと状態メッセージをクラスタログに記録できます。

scha_cluster_getnodename (3HA)

関数が呼び出されたクラスタノードの名前を戻します。

ユーティリティ関数

この関数は、エラーコードをエラーメッセージに変換します。

scha_strerror (3HA)

scha_ 関数によって戻されるエラーコードを適切なエラーメッセージに変換します。 この関数を logger と共に使用すると、メッセージをシステムログ (syslog) に記録できます。