cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l scha#include <scha.h>scha_err_t scha_resourcetype_open( const char *rtname, scha_resourcetype_t *handle);
scha_err_t scha_resourcetype_open_zone(const char *cluster, const char *rt_name, scha_resourcetype_t *handlep);
scha_err_t scha_resourcetype_close(scha_resourcetype_t handle);
scha_err_t scha_resourcetype_get(scha_resourcetype_t handle, const char *tag...);
scha_err_t scha_resourcetype_get_zone(const char *cluster, scha_resourcetype_t handlep,const char *rt_tag, ...);
scha_resourcetype_open()、scha_resourcetype_get ()、およびscha_resourcetype_close() 関数を使用すると、Resource Group Manager (RGM) クラスタ機能が利用するリソースタイプの情報を入手できます。
scha_resourcetype_open() は、リソースタイプへのアクセスを初期化し、scha_resourcetype_get() が使用するアクセスハンドルを返します。
scha_resourcetype_open() の rtname 引数には、アクセスするリソースタイプの名前を指定します。
handle 引数の値は、関数の戻り値を格納する変数のアドレスとなります。
scha_resourcetype_get() 関数は、tag 引数に指定されるリソースタイプの情報にアクセスします。tag 引数には、scha_tags.h ヘッダーファイルのマクロで定義される文字列値が入ります。タグ以降の引数は、tag の値に依存します。
タグ以降に追加する引数は、情報を取り出すクラスタノードや、タグ固有の他の情報を指定する際に必要となることがあります。引数リストの最後の引数は、tag で指定される情報の格納に適した型にする必要があります。これは out 引数で、リソースタイプの情報を格納します。関数の実行に失敗した場合、出力引数に値は返されません。scha_resourcetype_get() で使用されたハンドルで scha_resourcetype_close() が呼び出されるまで、scha_resourcetype_get() の返す情報用に割り当てられたメモリーは維持されます。
scha_resourcetype_close() には、事前に scha_resourcetype_open 関数を使って得た handle() 引数の値を指定します。この関数は、該当するハンドルを使用して得た scha_resourcegroup_get() の戻り値用割り当てメモリーを解放するとともに、このハンドルを無効化します。値を返す必要が生じると、get 呼び出しごとにメモリー割り当てが発生する点に注意してください。ある呼び出しで値を返すために割り当てられたメモリーが、以降の呼び出しによって上書きされたり、再利用されることはありません。
scha_tags.h に定義されるマクロには、scha_resourcetype_get の tag() 引数に使用されるものがあります。ここでは出力引数および追加引数の型を説明します。構造体と enum 型は、scha_calls(3HA) で説明されています。
scha_resourcetype_open_zone() 関数および scha_resourcetype_get_zone() 関数はそれぞれ、scha_resourcetype_open() および scha_resourcetype_get() と同じ目的で使用され、追加の cluster 引数で、リソースグループが存在し、操作の対象となるゾーンクラスタの名前を指定します。これらの関数は、大域ゾーンで実行されるコードを特定のゾーンクラスタで動作させる必要がある場合に便利です。ゾーンクラスタ内で、異なるゾーンクラスタにアクセスするために使用することはできません。
scha_resourcetype_open_zone() または scha_resourcetype_get_zone() の cluster 引数が NULL の場合、クエリーは、呼び出しが実行されるクラスタで実行されます (つまり、NULL 引数での呼び出しは、それぞれ scha_resourcetype_open() または scha_resourcetype_get() と等しくなります)。
scha_resourcetype_open_zone() から返されたハンドルを閉じるには、scha_resourcetype_close() を使用します。cluster 引数は不要です。
次のマクロによって、リソースタイプのプロパティーを指定します。出力は、リソースタイプの名前付きプロパティーの値です。
出力引数の型は int* です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は char ** です。
出力引数の型は scha_initnodes_flag_t * です。
出力引数の型は scha_str_array_t ** です。
出力引数の型は boolean_t * です。
出力引数の型は boolean_t * です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は scha_str_array_t ** です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は scha_str_array_t ** です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は char ** です。
出力引数の型は boolean_t * です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は char ** です。
出力引数の型は char ** です。
これらの関数は、次の戻り値を返します。
関数の実行に成功。
関数の実行に失敗。
関数の実行に成功。
その他のエラーコードについては、scha_calls(3HA) のマニュアルページを参照してください。
インクルードファイル
ライブラリ
次の属性については、attributes(5) を参照してください。
|
scha_resource_get(1HA), scha_calls(3HA), scha_strerror(3HA), scha_strerror_i18n(3HA), attributes(5), rt_properties(5)