cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l scha#include <scha.h>scha_err_t scha_resource_open( const char *rname, const char *rgname, scha_resource_t *handle);
scha_err_t scha_resource_open_zone(const char *cluster, const char *rs_name, const char *rg_name, scha_resource_t * handlep);
scha_err_t scha_resource_get(scha_resource_t handle, const char *tag,...);
scha_err_t scha_resource_get_zone(const char *cluster, scha_resource_t handlep, const char *rs_tag, ...);
scha_err_t scha_resource_close(scha_resource_t handle);
scha_resource_open()、scha_resource_get ()、および scha_resource_close() 関数は、Resource Group Manager (RGM) クラスタ機能で管理されるリソースに関する情報にアクセスするために一緒に使用します。
scha_resource_open() は、リソースへのアクセスを初期化し、scha_resource_get() が使用するハンドルを返します。
scha_resource_open の rname() 引数には、アクセスするリソースの名前を指定します。rgname 引数には、該当するリソースを割り当てたリソースグループの名前を指定します。グループ名が不明な場合、rgname 引数を NULL にすることができます。ただし、グループ名を指定する方が、関数の処理をより効率的に進めることができます。handle 引数の値は、関数の戻り値を格納する変数のアドレスとなります。
scha_resource_get() 関数は、tag 引数に指定されるリソースの情報にアクセスします。tag 引数には、scha_tags.h ヘッダーファイルのマクロで定義される文字列値を指定してください。タグ以降の引数は、tag の値に依存します。tag より後に追加する引数は、情報を取り出すクラスタノードや、tag 固有の他の情報を指定する際に必要となることがあります。引数リストの最後の引数は、tag で指定される情報の格納に適した変数型にする必要があります。これは出力引数で、リソースの情報を格納します。関数の実行に失敗した場合、出力引数に値は返されません。
scha_resource_get() で使用されたハンドルで scha_resource_close() が呼び出されるまで、scha_resource_get() の返す情報用に割り当てられたメモリーは維持されます。同じ handle と tag を指定して scha_resource_get() の呼び出しを繰り返すと、新規にメモリーが割り当てられます。ある呼び出しで値を返すために割り当てられたメモリーが、以降の呼び出しによって上書きされたり、再利用されたりすることはありません。
scha_resource_close() 関数は、以前の scha_resource_open の呼び出しで返された handle() 引数を取ります。これは、ハンドルを使用して得た scha_resource_get() 呼び出しの戻り値に割り当てられたメモリーを解放するとともに、このハンドルを無効化します。
scha_tags.h に定義されたマクロは、scha_resource_get の tag() 引数に使用される場合があります。
ここでは出力引数および追加引数の型を説明します。構造体と enum 型は、scha_calls(3HA) で説明されています。
scha_resource_open_zone() 関数および scha_resource_get_zone() 関数はそれぞれ、scha_resource_open() および scha_resource_get() と同じ目的で使用され、追加の cluster 引数で、リソースグループが存在し、操作の対象となるゾーンクラスタの名前を指定します。これらの関数は、大域ゾーンで実行されるコードを特定のゾーンクラスタで動作させる必要がある場合に便利です。ゾーンクラスタ内で、異なるゾーンクラスタにアクセスするために使用することはできません。
scha_resource_open_zone() または scha_resource_get_zone() の cluster 引数が NULL の場合、クエリーは、呼び出しが実行されるクラスタで実行されます (つまり、NULL 引数での呼び出しは、それぞれ scha_resource_open() または scha_resource_get() と等しくなります)。
scha_resource_open_zone() から返されたハンドルを閉じるには、scha_resource_close() を使用します。cluster 引数は不要です。
次に、リソースプロパティーを指定するマクロを示します。リソースプロパティーの値が出力されます。SCHA_RESOURCE_STATE、SCHA_STATUS、SCHA_NUM_RG_RESTARTS、SCHA_NUM_RESOURCE_RESTARTS の各プロパティーは、コマンドが実行されるノード上の値を参照します (r_properties(5) を参照)。
ここでは出力引数および追加引数の型を示します。
これらのプロパティーは、リソースタイプの Resource Type Registration (RTR) ファイル内で宣言します。リソースタイプの実装によって、これらのプロパティーを定義します。
出力引数の型は int* です。
出力引数の型は scha_str_array_t** です。リソースのすべての拡張プロパティーの名前を返します。
出力引数の型は char** です。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は scha_extprop_value_t* です。拡張プロパティーの名前を提供する、char* 型の追加の引数が必要です。ローカルノードのプロパティーのタイプとその値を返します。
明示的な値が割り当てられていないノード上でこのプロパティーの値をユーザーがリクエストすると、RTR ファイルで宣言されているデフォルト値が返されます。rt_reg(4) のマニュアルページを参照してください。
出力引数の型は scha_extprop_value_t* です。char* 型の追加の引数が必要です。最初の引数では、拡張プロパティーの名前を指定し、2 番目の引数ではクラスタノードを指定します。指定のノードのプロパティーのタイプとその値を返します。
明示的な値が割り当てられていないノード上でこのプロパティーの値をユーザーがリクエストすると、RTR ファイルで宣言されているデフォルト値が返されます。rt_reg(4) のマニュアルページを参照してください。
出力引数の型は scha_failover_mode_t* です。
出力引数の型は int* です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。リソースを構成するリソースグループの名前を返します。
出力引数の型は int* です。
出力引数の型は char** です。
出力引数の型は scha_str_array_t** です。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は scha_switch_t* です。戻り値は、ローカルノードでリソースがモニターされるかどうかを示します。
出力引数の型は scha_switch_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードでリソースがモニターされるかどうかを示します。
出力引数の型は scha_str_array_t** です。
出力引数の型は int* です。クエリーが実行されるゾーンのこのリソースで発生した、リソースの再起動のリクエスト数を返します。詳細は、r_properties(5) のマニュアルページを参照してください。
出力引数の型は int* です。クエリーが実行されるゾーンのこのリソースで発生した、リソースグループの再起動のリクエスト数を返します。詳細は、r_properties(5) のマニュアルページを参照してください。
出力引数の型は scha_switch_t* です。戻り値は、ローカルノードでリソースが有効かどうかを示します。
出力引数の型は scha_switch_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードでリソースが有効かどうかを示します。
出力引数の型は scha_str_array_t** です。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。
SCHA_RESOURCE_DEPENDENCIES タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}、{ANY_NODE}、{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。
出力引数の型は scha_str_array_t** です。
SCHA_RESOURCE_DEPENDENCIES_OFFLINE_RESTART タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}、{ANY_NODE}、{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。
出力引数の型は scha_str_array_t** です。
SCHA_RESOURCE_DEPENDENCIES_RESTART タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}、{ANY_NODE}、{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。
出力引数の型は scha_str_array_t** です。
SCHA_RESOURCE_DEPENDENCIES_WEAK タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}、{ANY_NODE}、{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。
出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。
出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。
出力引数の型は char** です。
出力引数の型は scha_rsstate_t* です。ローカルノード用に、リソースの RESOURCE_STATE プロパティー値を返します。
出力引数の型は scha_rsstate_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。指定のノードの、リソースの RESOURCE_STATE プロパティー値を返します。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は boolean_t* です。
出力引数の型は int* です。
出力引数の型は scha_status_value_t** です。ローカルノード用に、リソースの STATUS プロパティー値を返します。
出力引数の型は scha_status_value_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。指定のノードの、リソースの STATUS プロパティー値を返します。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は int* です。
出力引数の型は int* です。
出力引数の型は boolean_t* です。
次に、リソースタイププロパティーを指定するマクロを示します。出力は、リソースタイプのプロパティーの値です。リソースタイププロパティーについては、rt_properties(5) を参照してください。
出力引数の型は int* です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は scha_initnodes_flag_t* です。
出力引数の型は scha_str_array_t** です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は scha_str_array_t** です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は boolean_t* です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は char** です。
出力引数の型は char** です。
このリソースのタイプが GLOBAL_ZONE_OVERRIDE リソースプロパティーを宣言すると、SCHA_GLOBAL_ZONE optag で取得される値は GLOBAL_ZONE プロパティーの値ではなく、GLOBAL_ZONE_OVERRIDE プロパティーの現在の値になります。詳細は、rt_properties(5) のマニュアルページの Global_zone プロパティー、および r_properties(5) のマニュアルページの Global_zone_override プロパティーの説明を参照してください。
これらの関数は、次の戻り値を返します。
関数の実行に成功。
関数の実行に失敗。
関数の実行に成功。
その他のエラーコードについては、scha_calls(3HA) を参照してください。
次の例では、scha_resource_get() を使用して、あるリソースの Retry_count プロパティーの値と Loglevel という拡張プロパティーの値を取得します。
main() { #include <scha.h> scha_err_t err; int retry_count_out; scha_extprop_value_t *loglevel_out; scha_resource_t handle; /* a configured resource */ char * resource_name = "example_R"; /* resource group containing example_R */ char * group_name = "example_RG"; err = scha_resource_open(resource_name, group_name, &handle); err = scha_resource_get(handle, SCHA_RETRY_COUNT, &retry_count_out); /* Given extension property must be defined in resourcetype RTR file. */ err = scha_resource_get(handle, SCHA_EXTENSION, "LogLevel", &loglevel_out); err = scha_resource_close(handle); printf("The retry count for resource %s is %d\n", resource_name, retry_count_out); printf("The log level for resource %s is %d\n", resource_name, loglevel_out->val.val_int); }
インクルードファイル
ライブラリ
次の属性の説明は、attributes(5) を参照してください:
|
scha_resource_get(1HA), scha_calls(3HA), scha_strerror(3HA), attributes(5), r_properties(5), rt_properties(5), rt_reg(4)