cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l scha#include <scha.h>scha_err_t scha_get_function( handle, const char *tag...);
scha_err_t scha_control(const char *tag…
Oracle Solaris Cluster ライブラリ関数 scha_resource_get()、scha_resourcetype_get()、scha_resourcegroup_get()、scha_cluster_get()、scha_control()、scha_strerror()、および scha_resource_setstatus() は、コールバックメソッドの実装やリソースタイプのモニターで使用されるインタフェースを提供します。リソースタイプは、クラスタの Resource Group Manager (RGM) 機能によって制御されるサービスを表します。
「get」関数はクラスタ構成情報にアクセスします。これらの関数はすべて、同じ汎用シグニチャを持ちます。これらの関数は、以前の「open」関数の呼び出しから返された handle 引数を取ります。この handle は、クラスタ構成情報内のアクセスされるオブジェクトを示します。tag 引数は、アクセスされるオブジェクトのプロパティーを示します。tag の値により、引数を追加する必要があるかどうかと、要求された情報を返す最後の「out」引数の型が決定されます。「close」呼び出しが行われるまでは、同じハンドルを使って繰り返し「get」呼び出しを行えます。「close」呼び出しは、ハンドルを無効化し、「get」呼び出しから返された値に割り当てられているメモリーを解放します。
値を返す必要がある場合、各「get」呼び出しでメモリーが割り当てられます。ある呼び出しで値を返すために割り当てられたメモリーが、以降の呼び出しによって上書きされたり、再利用されたりすることはありません。
scha_control() 関数にはまた、制御操作を示すが、出力引数で情報を返さない tag 引数もあります。
scha_resource_setstatus コマンドは、RGM によって管理されるリソースの Status および Status_msg プロパティーを設定します。
各関数の tag 引数値として受け付けられるマクロ値と各 tag の引数型については、個々の関数のマニュアルページを参照してください。次のセクションでは、出力引数の型について説明します。
scha 関数には、scha_err_t enum 型の戻り値が 1 セットあります。enum の記号、整数値、および終了コードの意味については、戻り値 を参照してください。
scha_strerror() 関数は、scha 関数によって返された scha_err_t コードを適切なエラーメッセージに変換します。
符号なし整数型。このタイプは、システムヘッダーファイル sys/types.h で定義されます。
このタイプは、システムヘッダーファイル sys/types.h で定義されます。
typedef enum { B_FALSE, B_TRUE } boolean_t;
リソースプロパティーの値 On_Off_switch または Monitored_switch を示す enum 型。
typedef enum scha_switch { SCHA_SWITCH_DISABLED = 0, SCHA_SWITCH_ENABLED } scha_switch_t;
Preemption_mode リソースグループプロパティーの値を示す enum 型。
typedef enum scha_rg_preemption_mode { SCHA_HAS_PREEMPTION_COST = 0, SCHA_NO_PREEMPTION_COST, SCHA_NEVER_PREEMPT_RG } scha_rg_preemption_mode_t;
リソースの状態を示す enum 型です。
typedef enum scha_rsstate { SCHA_RSSTATE_ONLINE = 0, SCHA_RSSTATE_OFFLINE, SCHA_RSSTATE_START_FAILED, SCHA_RSSTATE_STOP_FAILED, SCHA_RSSTATE_MONITOR_FAILED, SCHA_RSSTATE_ONLINE_NOT_MONITORED, SCHA_RSSTATE_STARTING, SCHA_RSSTATE_STOPPING } scha_rsstate_t;
リソースグループの状態を示す enum 型です。
typedef enum scha_rgstate { SCHA_RGSTATE_UNMANAGED = 0, SCHA_RGSTATE_ONLINE, SCHA_RGSTATE_OFFLINE, SCHA_RGSTATE_PENDING_ONLINE, SCHA_RGSTATE_PENDING_OFFLINE, SCHA_RGSTATE_ERROR_STOP_FAILED SCHA_RGSTATE_ONLINE_FAULTED, SCHA_RGSTATE_PENDING_ONLINE_BLOCKED } scha_rgstate_t;
リソースグループのモードがフェイルオーバーかスケーラブルかを示す enum 型です。
typedef enum scha_rgmode { RGMODE_NONE = 0, RGMODE_FAILOVER, RGMODE_SCALABLE } scha_rgmode_t;
リソースプロパティー Failover_Mode の値を示す enum 型です。
typedef enum scha_failover_mode { SCHA_FOMODE_NONE = 0, SCHA_FOMODE_HARD, SCHA_FOMODE_SOFT, SCHA_FOMODE_RESTART_ONLY, SCHA_FOMODE_LOG_ONLY } scha_failover_mode_t;
リソースタイププロパティー Init_nodes の値を示す enum 型です。
typedef enum scha_initnodes_flag { SCHA_INFLAG_RG_PRIMARIES = 0, SCHA_INFLAG_RT_INSTALLED_NODES } scha_initnodes_flag_t;
ノードが起動しているかどうかを示す enum 型です。
typedef enum scha_node_state { SCHA_NODE_UP = 0, SCHA_NODE_DOWN } scha_node_state_t;
文字列のリストの値を格納する構造体です。
typedef struct scha_str_array { uint_t array_cnt; boolean_t is_ALL_value; char **str_array; } scha_str_array_t;
リスト内の要素数を示します。
プロパティーが「all」値 (ワイルドカードまたはアスタリスク (*) 文字とも呼ばれます) に設定されている場合、is_ALL_value は B_TRUE に設定され、str_array は NULL です。そのため、str_array は無視されます。
array_cnt strings 配列へのポインタです。
符号なし整数のリストの値を格納する構造体です。
typedef struct scha_uint_array { uint_t array_cnt; uint_t *int_array; } scha_uint_array_t;
リスト内の要素数です。
符号なし整数 array_cnt の配列へのポインタです。
リソースのステータスとステータスメッセージを返す構造体です。
typedef struct scha_status_value { scha_rsstatus_t status; char *status_msg; } scha_status_value_t; typedef enum scha_rsstatus { SCHA_RSSTATUS_ONLINE = 0, SCHA_RSSTATUS_OFFLINE, SCHA_RSSTATUS_FAULTED, SCHA_RSSTATUS_DEGRADED, SCHA_RSSTATUS_UNKNOWN } scha_rsstatus_t;
リソースモニターの設定に従ってリソースのステータスを示す enum の値です。
拡張プロパティーの値を返すために使用される構造体です。
prop_type 構造体メンバーは、拡張プロパティーの型を示し、prop_type フィールドと戻り値で使用される共用体要素を決めます。
SCHA_PTYPE_STRING val_str SCHA_PTYPE_INT val_int SCHA_PTYPE_ENUM val_enum SCHA_PTYPE_BOOLEAN val_boolean SCHA_PTYPE_STRINGARRAY val_strarray typedef struct scha_extprop_value { scha_prop_type_t prop_type; union { char *val_str; int val_int; char *val_enum; boolean_t val_boolean; scha_str_array_t *val_strarray; } val; } scha_extprop_value_t;
次に、scha_strerror() によって返される scha_err_t エラー番号とエラーコードの一覧を示します。
エラーは検出されませんでした。
スワップが十分ではありません。
無効なリソース管理ハンドルです。
無効な入力引数です。
無効な API タグです。
クラスタは再構成されます。
アクセス権が拒否されました。
最後の scha_*_open 呼び出し以降に、リソース、リソースグループまたはリソースタイプが更新されました。
オブジェクトの依存の問題です。
オブジェクトの状態が不正です。
無効なメソッドです。
無効なノードです。
無効なリソースグループです。
無効なリソースタイプです。
無効なリソースです。
無効なプロパティーです。
妥当性検査に失敗しました。
リソースのステータスが不正です。
内部エラーが発生しました。
ほかのクラスタと通信できません。
ゾーンクラスタが無効です。
ゾーンクラスタの状態が「実行中」ではありません。
負荷制限が無効です。
操作がタイムアウトしました。
フェイルオーバーの試みが失敗しました。
インクルードファイル
ライブラリ
次の属性については、attributes(5) を参照してください。
|
scha_cmds(1HA), scha_resource_setstatus(1HA)scha_cluster_open(3HA), scha_control(3HA), scha_resource_open(3HA), scha_resourcegroup_open(3HA), scha_resource_setstatus(3HA), scha_resourcetype_open(3HA), scha_strerror(3HA), attributes(5)