Oracle Solaris Cluster リファレンスマニュアル

印刷ビューの終了

更新: 2015 年 9 月
 
 

scha_resourcegroup_open (3HA)

名前

scha_resourcegroup_open, scha_resourcegroup_open_zone, scha_resourcegroup_get, scha_resourcegroup_get_zone, scha_resourcegroup_close - リソース情報アクセス関数

形式

cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l scha#include <scha.h>scha_err_t scha_resourcegroup_open( const char *rgname, scha_resourcegroup_t *handle);
scha_err_t scha_resourcegroup_open_zone( const char *cluster, const char *rg_name, scha_resourcegroup_t * handlep);
scha_err_t scha_resourcegroup_close(scha_resourcegroup_t handle);
scha_err_t scha_resourcegroup_get(scha_resourcegroup_t handle, const char *tag...);
scha_err_t scha_resourcegroup_get_zone(const char *cluster, 
     scha_resourcegroup_t handlep, const char *rg_tag, ...);

説明

scha_resourcegroup_open()scha_resourcegroup_get()scha_resourcegroup_close() の 3 つの関数を同時に使用することで Resource Group Manager (RGM) クラスタ機能の管理するリソースグループに関する情報を入手できます。

scha_resourcegroup_open() はリソースグループのアクセスを初期化し、scha_resourcegroup_get() で使用されるハンドルを返します。

rgname 引数には、アクセスするリソースグループの名前を指定します。

handle 引数は、関数が返す値を格納する変数のアドレスです。

scha_resourcegroup_get() 関数は、tag 引数に指定されるリソースグループの情報にアクセスします。tag は、scha_tags.h ヘッダーファイルのマクロで定義される文字列値であるはずです。タグ以降の引数は、tag の値に依存します。タグ以降に追加する引数は、情報を取り出すクラスタノードを指定する際に必要です。

引数リストの最後の引数は、tag で指定される情報の格納に適した変数型にする必要があります。このパラメータは出力引数で、取得したリソースグループの情報を格納します。関数の実行に失敗した場合、出力引数に値は返されません。scha_resourcegroup_get() から返される情報を格納するために割り当てられたメモリーは、scha_resourcegroup_get() に使用されたハンドルで scha_resourcegroup_close() が呼び出されるまで、そのまま残ります。

scha_resourcegroup_close() には、事前に scha_resourcegroup_open() 関数を使って得た handle 引数の値を指定します。これはそのハンドルを無効にし、そのハンドルを使用して行われた scha_resourcegroup_get() の呼び出しの戻り値に割り当てられているメモリーを解放します。値を返す必要が生じるごとに、個々の get 呼び出しでメモリーが割り当てられる点に注意してください。ある呼び出しで値を返すために割り当てられたメモリーが、以降の呼び出しによって上書きされたり、再利用されたりすることはありません。

scha_resourcegroup_open_zone() および scha_resourcegroup_get_zone() 関数は、それぞれ scha_resourcegroup_open() および scha_resourcegroup_get() と同じ目的を果たしますが、リソースグループが存在する操作対象のゾーンクラスタの名前を指定する cluster 引数が追加されています。これらの関数は、大域ゾーンで実行されるコードを特定のゾーンクラスタで動作させる必要がある場合に便利です。ゾーンクラスタ内で、異なるゾーンクラスタにアクセスするために使用することはできません。

scha_resourcegroup_open_zone() または scha_resourcegroup_get_zone()cluster 引数が NULL の場合、クエリーは、呼び出しが実行されるクラスタで実行されます (つまり、NULL 引数での呼び出しは、それぞれ scha_resourcegroup_open() または scha_resourcegroup_get() と等しくなります)。

scha_resourcegroup_open_zone() から返されたハンドルを閉じるには、scha_resourcegroup_close() を使用します。cluster 引数は不要です。

tag 引数に使用できるマクロ

scha_resourcegroup_get() 関数への tag 引数として scha_tags.h で定義されている次のマクロを使用できます。これらのマクロはリソースグループプロパティーに名前を付けます。リソースグループのプロパティー値が生成されます。RG_STATE プロパティーは、関数を呼び出したノード上の値を示します。

ここでは出力引数および追加引数の型を説明します。構造体と enum 型については scha_calls(3HA) のマニュアルページで説明されています。

SCHA_ALL_LOAD_FACTORS

出力引数の型は scha_str_array_t** です。

SCHA_ALL_LOAD_FACTOR_NAMES

出力引数の型は scha_str_array_t** です。

SCHA_DESIRED_PRIMARIES

出力引数の型は int* です。

SCHA_FAILBACK

出力引数の型は boolean_t* です。

SCHA_LOAD_FACTOR

出力引数の型は int* です。

SCHA_GLOBAL_RESOURCES_USED

出力引数の型は scha_str_array_t** です。

SCHA_IMPL_NET_DEPEND

出力引数の型は boolean_t* です。

SCHA_MAXIMUM_PRIMARIES

出力引数の型は int* です。

SCHA_NODELIST

出力引数の型は scha_str_array_t** です。

SCHA_PATHPREFIX

出力引数の型は char** です。

SCHA_PINGPONG_INTERVAL

出力引数の型は int* です。

SCHA_PREEMPTION_MODE

出力引数の型は scha_rg_preemption_mode_t* です。

SCHA_PRIORITY

出力引数の型は int* です。

SCHA_RESOURCE_LIST

出力引数の型は scha_str_array_t** です。

SCHA_RG_AFFINITIES

出力引数の型は char** です。

SCHA_RG_AUTO_START

出力引数の型は boolean_t* です。

SCHA_RG_DEPENDENCIES

出力引数の型は scha_str_array_t** です。

SCHA_RG_DESCRIPTION

出力引数の型は char** です。

SCHA_RG_IS_FROZEN

出力引数の型は boolean_t* です。

SCHA_RG_MODE

出力引数の型は scha_rgmode_t* です。

SCHA_RG_PROJECT_NAME

出力引数の型は char** です。

SCHA_RG_SLM_CPU

出力引数の型は char** です。

SCHA_RG_SLM_CPU_MIN

出力引数の型は char** です。

SCHA_RG_SLM_PSET_TYPE

出力引数の型は char** です。

SCHA_RG_SLM_TYPE

出力引数の型は char** です。

SCHA_RG_STATE

出力引数の型は scha_rgstate_t* です。

SCHA_RG_STATE_NODE

出力引数の型は scha_rgstate_t* です。追加引数の型は char* です。追加引数はクラスタノードを指定し、そのノード上のリソースグループの状態を返します。

SCHA_RG_SUSP_AUTO_RECOVERY

出力引数の型は boolean_t* です。

SCHA_RG_SYSTEM

出力引数の型は boolean_t* です。

SCHA_TARGET_NODES

出力引数の型は scha_str_array_t** です。

戻り値

これらの関数は、次の戻り値を返します。

0

関数の実行に成功。

0 以外

関数の実行に失敗。

エラー

SCHA_ERR_NOERR

関数の実行に成功。

その他のエラーコードについては、scha_calls(3HA) を参照してください。

使用例 1 scha_resourcegroup_get() 関数の使用例

次の例では、scha_resourcegroup_get() を用いて、example_RG 内のリソースリストを取得します。

main() {
   #include <scha.h>

   scha_err_t err;
   scha_str_array_t *resource_list;
   scha_resourcegroup_t handle;
   int ix;

   char * rgname = "example_RG";	

   err = scha_resourcegroup_open(rgname, &handle);

   err = scha_resourcegroup_get(handle, SCHA_RESOURCE_LIST, \
         &resource_list);

   if (err == SCHA_ERR_NOERR) {
    for (ix = 0; ix < resource_list->array_cnt; ix++) {
        printf("Group: %s contains resource %s\n", rgname,
                resource_list->str_array[ix]);
        }
    }

/* resource_list memory freed */
 err = scha_resourcegroup_close(handle);	
}

ファイル

/usr/cluster/include/scha.h

インクルードファイル

/usr/cluster/lib/libscha.so

ライブラリ

属性

次の属性の説明は、attributes(5) を参照してください:

属性タイプ
属性値
使用条件
ha-cluster/developer/api
インタフェースの安定性
発展中

関連項目

clnode(1CL), scha_resourcegroup_get(1HA) , scha_calls(3HA), attributes(5)