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(3HA)、scha_resourcetype_get(3HA)、scha_resourcegroup_get(3HA)、scha_cluster_get(3HA)、scha_control(3HA)、scha_strerror(3HA) 和 scha_resource_setstatus(3HA) 提供了实现回调方法和监视资源类型过程中要使用的接口。资源类型表示群集的资源组管理器 (Resource Group Manager, RGM) 设备所控制的服务。
get 函数用于访问群集配置信息。所有这些函数都具有相同的通用签名。这些函数会将从上一调用返回的 handle 参数传给 open 函数。此 handle 指示群集配置中要访问的对象。tag 参数指示要访问的对象的属性。tag 的值用于确定是否需要其他参数以及最终的 out 参数(可用于返回请求的信息)的类型。您可以对同一句柄进行重复的 get 调用,直到遇到 close 调用为止,close 调用可使句柄无效并释放为 get 调用返回的值分配的内存。
如果在返回值时需要内存,系统会为每个 get 调用分配相应的内存。在一个调用中为返回值而分配的空间不会被后续调用覆盖和重新使用。
scha_control(3HA) 函数还具有一个指示控制操作的 tag 参数,但不会在输出参数中返回信息。
scha_resource_setstatus(1HA) 命令用于设置由 RGM 管理的资源的 Status 和 Status_msg 属性。
有关作为每个函数的 tag 参数值接受的宏值以及每个 tag 的变量参数类型,应参阅各个函数的手册页。输出参数的类型在下一节中进行说明。
对于 scha 函数,存在一组 scha_err_tenum 类型的返回值。退出代码的枚举符号、整数值和含义在“返回值”中进行说明。
scha_strerror(3HA) 函数可将 scha 函数返回的 scha_err_t 代码转换为相应的错误消息。
无符号整数类型。此类型在系统头文件 sys/types.h 中进行定义。
此类型在系统头文件 sys/types.h 中进行定义。
typedef enum { B_FALSE, B_TRUE } boolean_t;
enum 类型,用于指示 On_Off_switch 或 Monitored_switch 资源属性值。
typedef enum scha_switch { SCHA_SWITCH_DISABLED = 0, SCHA_SWITCH_ENABLED } scha_switch_t;
enum 类型,用于指示 Preemption_mode 资源组属性的值。
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;
enum 类型,用于指示 Failover_Mode 资源属性的值。
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;
enum 类型,用于指示 Init_nodes 资源类型属性的值。
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(3HA) 返回的 scha_err_t 错误号和错误代码的列表。
未找到错误。
交换空间不足。
资源管理句柄无效。
输入参数无效。
API 标记无效。
正在重新配置群集。
权限被拒绝。
资源、资源组或资源类型自上次 scha_*_open 调用后已进行更新。
对象依赖性问题。
对象处于错误状况。
方法无效。
节点无效。
资源组无效。
资源类型无效。
资源无效。
属性无效。
健全性检查失败。
错误的资源状态。
遇到内部错误。
无法与其他群集通信。
区域群集无效。
区域群集未处于“正在运行”状况。
负载限制无效。
操作超时。
故障转移尝试失败.
头文件
库
有关下列属性的说明,请参见 attributes(5):
|
scha_cmds(1HA)、scha_resource_setstatus(1HA)scha_cluster_get(3HA)、scha_control(3HA)、scha_resource_get(3HA)、scha_resourcegroup_get(3HA)、scha_resource_setstatus(3HA)、scha_resourcetype_get(3HA)、scha_strerror(3HA)、attributes(5)