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

印刷ビューの終了

更新: 2015 年 9 月
 
 

scha_calls (3HA)

名前

scha_calls - リソースタイプのコールバックメソッドおよびモニターの実装に使用される Oracle Solaris Cluster ライブラリ関数

形式

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 コードを適切なエラーメッセージに変換します。

出力引数のデータ型

uint_t

符号なし整数型。このタイプは、システムヘッダーファイル sys/types.h で定義されます。

boolean_t

このタイプは、システムヘッダーファイル sys/types.h で定義されます。

typedef enum { B_FALSE, B_TRUE } boolean_t;
scha_switch_t

リソースプロパティーの値 On_Off_switch または Monitored_switch を示す enum 型。

typedef enum scha_switch {
    SCHA_SWITCH_DISABLED = 0,
    SCHA_SWITCH_ENABLED
} scha_switch_t;
scha_rg_preemption_mode_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;
scha_rsstate_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;
scha_rgstate_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;
scha_rgmode_t

リソースグループのモードがフェイルオーバーかスケーラブルかを示す enum 型です。

typedef enum scha_rgmode {
	RGMODE_NONE = 0,
	RGMODE_FAILOVER,
	RGMODE_SCALABLE
} scha_rgmode_t;

scha_failover_mode_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;
scha_initnodes_flag_t

リソースタイププロパティー Init_nodes の値を示す enum 型です。

typedef enum scha_initnodes_flag {
    SCHA_INFLAG_RG_PRIMARIES = 0,
    SCHA_INFLAG_RT_INSTALLED_NODES
} scha_initnodes_flag_t;
scha_node_state_t

ノードが起動しているかどうかを示す enum 型です。

typedef enum scha_node_state {
    SCHA_NODE_UP = 0,
    SCHA_NODE_DOWN
} scha_node_state_t;
scha_str_array_t

文字列のリストの値を格納する構造体です。

typedef struct scha_str_array {
    uint_t       array_cnt;
    boolean_t    is_ALL_value;
    char         **str_array;
} scha_str_array_t;
array_cnt

リスト内の要素数を示します。

is_ALL_value

プロパティーが「all」値 (ワイルドカードまたはアスタリスク (*) 文字とも呼ばれます) に設定されている場合、is_ALL_valueB_TRUE に設定され、str_arrayNULL です。そのため、str_array は無視されます。

str_array

array_cnt strings 配列へのポインタです。

scha_uint_array_t

符号なし整数のリストの値を格納する構造体です。

typedef struct scha_uint_array {
    uint_t	array_cnt;
    uint_t	*int_array;
} scha_uint_array_t;
array_cnt

リスト内の要素数です。

int_array

符号なし整数 array_cnt の配列へのポインタです。

scha_status_value_t

リソースのステータスとステータスメッセージを返す構造体です。

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;
status

リソースモニターの設定に従ってリソースのステータスを示す enum の値です。

scha_extprop_value_t

拡張プロパティーの値を返すために使用される構造体です。

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 エラー番号とエラーコードの一覧を示します。

0 SCHA_ERR_NOERR

エラーは検出されませんでした。

1 SCHA_ERR_NOMEM

スワップが十分ではありません。

2 SCHA_ERR_HANDLE

無効なリソース管理ハンドルです。

3 SCHA_ERR_INVAL

無効な入力引数です。

4 SCHA_ERR_TAG

無効な API タグです。

5 SCHA_ERR_RECONF

クラスタは再構成されます。

6 SCHA_ERR_ACCESS

アクセス権が拒否されました。

7 SCHA_ERR_SEQID

最後の scha_*_open 呼び出し以降に、リソース、リソースグループまたはリソースタイプが更新されました。

8 SCHA_ERR_DEPEND

オブジェクトの依存の問題です。

9 SCHA_ERR_STATE

オブジェクトの状態が不正です。

10 SCHA_ERR_METHOD

無効なメソッドです。

11 SCHA_ERR_NODE

無効なノードです。

12 SCHA_ERR_RG

無効なリソースグループです。

13 SCHA_ERR_RT

無効なリソースタイプです。

14 SCHA_ERR_RSRC

無効なリソースです。

15 SCHA_ERR_PROP

無効なプロパティーです。

16 SCHA_ERR_CHECKS

妥当性検査に失敗しました。

17 SCHA_ERR_RSTATUS

リソースのステータスが不正です。

18 SCHA_ERR_INTERNAL

内部エラーが発生しました。

19 SCHA_ERR_CLUSTER

ほかのクラスタと通信できません。

20 SCHA_ERR_ZONE_CLUSTER

ゾーンクラスタが無効です。

21 SCHA_ERR_ZC_DOWN

ゾーンクラスタの状態が「実行中」ではありません。

22 SCHA_ERR_LOADLIMIT

負荷制限が無効です。

31 SCHA_ERR_TIMEOUT

操作がタイムアウトしました。

32 SCHA_ERR_FAIL

フェイルオーバーの試みが失敗しました。

ファイル

/usr/cluster/include/scha.h

インクルードファイル

/usr/cluster/lib/libscha.so

ライブラリ

属性

次の属性については、attributes(5) を参照してください。

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

関連項目

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)