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

印刷ビューの終了

更新: 2015 年 9 月
 
 

scha_resource_close(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_open()rname 引数は、アクセスされるリソースを指定します。rgname 引数には、該当するリソースを割り当てたリソースグループの名前を指定します。グループ名が不明な場合、rgname 引数を NULL にすることができます。ただし、グループ名を指定する方が、関数の処理をより効率的に進めることができます。handle 引数の値は、関数の戻り値を格納する変数のアドレスとなります。

scha_resource_get() 関数は、tag 引数に指定されるリソースの情報にアクセスします。tag 引数には、scha_tags.h ヘッダーファイルのマクロで定義される文字列値を指定してください。タグ以降の引数は、tag の値に依存します。tag より後に追加する引数は、情報を取り出すクラスタノードや、tag 固有の他の情報を指定する際に必要となることがあります。引数リストの最後の引数は、tag で指定される情報の格納に適した変数型にする必要があります。これは出力引数で、リソースの情報を格納します。関数の実行に失敗した場合、出力引数に値は返されません。

scha_resource_get() によって返される情報を保持するために割り当てられているメモリーは、scha_resource_get() に使用されたハンドルで scha_resource_close() が呼び出されるまでそのままになります。同じ handle と tag を指定して scha_resource_get() の呼び出しを繰り返すと、新規にメモリーが割り当てられます。ある呼び出しで値を返すために割り当てられたメモリーが、以降の呼び出しによって上書きされたり、再利用されたりすることはありません。

scha_resource_close() 関数は、以前の scha_resource_open の呼び出しで返された handle() 引数を取ります。これはそのハンドルを無効にし、そのハンドルを使用して行われた scha_resource_get() の呼び出しの戻り値に割り当てられているメモリーを解放します。

scha_resource_get() への tag 引数として使用される可能性のある、scha_tags.h で定義されているマクロが続きます。

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