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

印刷ビューの終了

更新: 2014 年 7 月、E51742-01
 
 

scha_resource_get(3HA)

名前

scha_resource_open, scha_resource_open_zone, scha_resource_get, scha_resource_get_zone, scha_resource_close - リソース情報アクセス関数

形式

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_openrname() 引数には、アクセスするリソースの名前を指定します。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_gettag() 引数に使用される場合があります。

ここでは出力引数および追加引数の型を説明します。構造体と 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 引数は不要です。

tag 引数

次に、リソースプロパティーを指定するマクロを示します。リソースプロパティーの値が出力されます。SCHA_RESOURCE_STATESCHA_STATUSSCHA_NUM_RG_RESTARTSSCHA_NUM_RESOURCE_RESTARTS の各プロパティーは、コマンドが実行されるノード上の値を参照します (r_properties(5) を参照)。

ここでは出力引数および追加引数の型を示します。

拡張プロパティー

これらのプロパティーは、リソースタイプの Resource Type Registration (RTR) ファイル内で宣言します。リソースタイプの実装によって、これらのプロパティーを定義します。

SCHA_AFFINITY_TIMEOUT

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

SCHA_ALL_EXTENSIONS

出力引数の型は scha_str_array_t** です。リソースのすべての拡張プロパティーの名前を返します。

SCHA_APPLICATION_USER

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

SCHA_BOOT_TIMEOUT

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

SCHA_CHEAP_PROBE_INTERVAL

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

SCHA_EXTENSION

出力引数の型は scha_extprop_value_t* です。拡張プロパティーの名前を提供する、char* 型の追加の引数が必要です。ローカルノードのプロパティーのタイプとその値を返します。

明示的な値が割り当てられていないノード上でこのプロパティーの値をユーザーがリクエストすると、RTR ファイルで宣言されているデフォルト値が返されます。rt_reg(4) のマニュアルページを参照してください。

SCHA_EXTENSION_NODE

出力引数の型は scha_extprop_value_t* です。char* 型の追加の引数が必要です。最初の引数では、拡張プロパティーの名前を指定し、2 番目の引数ではクラスタノードを指定します。指定のノードのプロパティーのタイプとその値を返します。

明示的な値が割り当てられていないノード上でこのプロパティーの値をユーザーがリクエストすると、RTR ファイルで宣言されているデフォルト値が返されます。rt_reg(4) のマニュアルページを参照してください。

SCHA_FAILOVER_MODE

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

SCHA_FINI_TIMEOUT

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

SCHA_GLOBAL_ZONE_OVERRIDE

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

SCHA_GROUP

出力引数の型は char** です。リソースを構成するリソースグループの名前を返します。

SCHA_INIT_TIMEOUT

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

SCHA_LOAD_BALANCING_POLICY

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

SCHA_LOAD_BALANCING_WEIGHTS

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

SCHA_MONITOR_CHECK_TIMEOUT

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

SCHA_MONITOR_START_TIMEOUT

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

SCHA_MONITOR_STOP_TIMEOUT

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

SCHA_MONITORED_SWITCH

出力引数の型は scha_switch_t* です。戻り値は、ローカルノードでリソースがモニターされるかどうかを示します。

SCHA_MONITORED_SWITCH_NODE

出力引数の型は scha_switch_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードでリソースがモニターされるかどうかを示します。

SCHA_NETWORK_RESOURCES_USED

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

SCHA_NUM_RESOURCE_RESTARTS

出力引数の型は int* です。クエリーが実行されるゾーンのこのリソースで発生した、リソースの再起動のリクエスト数を返します。詳細は、r_properties(5) のマニュアルページを参照してください。

SCHA_NUM_RG_RESTARTS

出力引数の型は int* です。クエリーが実行されるゾーンのこのリソースで発生した、リソースグループの再起動のリクエスト数を返します。詳細は、r_properties(5) のマニュアルページを参照してください。

SCHA_ON_OFF_SWITCH

出力引数の型は scha_switch_t* です。戻り値は、ローカルノードでリソースが有効かどうかを示します。

SCHA_ON_OFF_SWITCH_NODE

出力引数の型は scha_switch_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードでリソースが有効かどうかを示します。

SCHA_PORT_LIST

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

SCHA_POSTNET_STOP_TIMEOUT

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

SCHA_PRENET_START_TIMEOUT

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

SCHA_PRE_EVICT

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

SCHA_R_DESCRIPTION

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

SCHA_RESOURCE_DEPENDENCIES

出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_NODE

出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_OFFLINE_RESTART

出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_OFFLINE_RESTART_NODE

出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_Q

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

SCHA_RESOURCE_DEPENDENCIES タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。

SCHA_RESOURCE_DEPENDENCIES_Q_OFFLINE_RESTART

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

SCHA_RESOURCE_DEPENDENCIES_OFFLINE_RESTART タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。

SCHA_RESOURCE_DEPENDENCIES_Q_RESTART

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

SCHA_RESOURCE_DEPENDENCIES_RESTART タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。

SCHA_RESOURCE_DEPENDENCIES_Q_WEAK

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

SCHA_RESOURCE_DEPENDENCIES_WEAK タグの「Q」バージョンも、リソースの依存関係のために宣言されたスコープまたは修飾子があれば、それを返します。{LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}、および @node 修飾子については、r_properties(5) のマニュアルページで説明されています。

SCHA_RESOURCE_DEPENDENCIES_RESTART

出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_RESTART_NODE

出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_WEAK

出力引数の型は scha_str_array_t** です。戻り値は、ローカルノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_DEPENDENCIES_WEAK_NODE

出力引数の型は scha_str_array_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。戻り値は、指定したノードで適用可能な依存関係を一覧表示します。

SCHA_RESOURCE_PROJECT_NAME

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

SCHA_RESOURCE_STATE

出力引数の型は scha_rsstate_t* です。ローカルノード用に、リソースの RESOURCE_STATE プロパティー値を返します。

SCHA_RESOURCE_STATE_NODE

出力引数の型は scha_rsstate_t* です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。指定のノードの、リソースの RESOURCE_STATE プロパティー値を返します。

SCHA_RETRY_COUNT

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

SCHA_RETRY_INTERVAL

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

SCHA_SCALABLE

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

SCHA_START_TIMEOUT

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

SCHA_STATUS

出力引数の型は scha_status_value_t** です。ローカルノード用に、リソースの STATUS プロパティー値を返します。

SCHA_STATUS_NODE

出力引数の型は scha_status_value_t** です。クラスタノードに名前を付ける、char * 型の追加の引数が必要です。指定のノードの、リソースの STATUS プロパティー値を返します。

SCHA_STOP_TIMEOUT

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

SCHA_THOROUGH_PROBE_INTERVAL

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

SCHA_TYPE

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

SCHA_TYPE_VERSION

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

SCHA_UDP_AFFINITY

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

SCHA_UPDATE_TIMEOUT

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

SCHA_VALIDATE_TIMEOUT

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

SCHA_WEAK_AFFINITY

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

次に、リソースタイププロパティーを指定するマクロを示します。出力は、リソースタイプのプロパティーの値です。リソースタイププロパティーについては、rt_properties(5) を参照してください。

SCHA_API_VERSION

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

SCHA_BOOT

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

SCHA_FAILOVER

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

SCHA_FINI

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

SCHA_GLOBAL_ZONE

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

SCHA_INIT

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

SCHA_INIT_NODES

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

SCHA_INSTALLED_NODES

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

SCHA_MONITOR_CHECK

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

SCHA_MONITOR_START

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

SCHA_MONITOR_STOP

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

SCHA_PKGLIST

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

SCHA_POSTNET_STOP

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

SCHA_PRENET_START

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

SCHA_PROXY

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

SCHA_RT_BASEDIR

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

SCHA_RT_DESCRIPTION

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

SCHA_RT_SYSTEM

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

SCHA_RT_VERSION

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

SCHA_SINGLE_INSTANCE

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

SCHA_START

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

SCHA_STOP

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

SCHA_UPDATE

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

SCHA_VALIDATE

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

このリソースのタイプが GLOBAL_ZONE_OVERRIDE リソースプロパティーを宣言すると、SCHA_GLOBAL_ZONE optag で取得される値は GLOBAL_ZONE プロパティーの値ではなく、GLOBAL_ZONE_OVERRIDE プロパティーの現在の値になります。詳細は、rt_properties(5) のマニュアルページの Global_zone プロパティー、および r_properties(5) のマニュアルページの Global_zone_override プロパティーの説明を参照してください。

戻り値

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

0

関数の実行に成功。

0 以外

関数の実行に失敗。

エラー

SCHA_ERR_NOERR

関数の実行に成功。

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

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

次の例では、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);
}

ファイル

/usr/cluster/include/scha.h

インクルードファイル

/usr/cluster/lib/libscha.so

ライブラリ

属性

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

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

関連項目

scha_resource_get(1HA), scha_calls(3HA), scha_strerror(3HA), attributes(5), r_properties(5), rt_properties(5), rt_reg(4)