Oracle® Solaris Cluster 参考手册

退出打印视图

更新时间: 2014 年 7 月,E51743-01
 
 

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(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 管理的资源的 StatusStatus_msg 属性。

有关作为每个函数的 tag 参数值接受的宏值以及每个 tag 的变量参数类型,应参阅各个函数的手册页。输出参数的类型在下一节中进行说明。

对于 scha 函数,存在一组 scha_err_tenum 类型的返回值。退出代码的枚举符号、整数值和含义在“返回值”中进行说明。

scha_strerror(3HA) 函数可将 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

enum 类型,用于指示 On_Off_switch Monitored_switch 资源属性值。

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

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

enum 类型,用于指示 Init_nodes 资源类型属性的值。

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_value 将设置为 B_TRUEstr_array 将为 NULL 。因此,将忽略 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(3HA) 返回的 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
接口稳定性
Evolving(发展中)

另请参见

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)