Oracle® Solaris Cluster 参考手册

退出打印视图

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

scha_resource_get_zone(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 指定的信息。该参数是资源信息的输出参数。如果函数失败,不会为输出参数返回值。

对用于 scha_resource_get() 的句柄调用 scha_resource_close() 之前,所分配的用于保存 scha_resource_get() 返回的信息的内存将保持不变。请注意,使用相同的句柄和标记重复调用 scha_resource_get() 会导致分配新的内存。在一个调用中为返回值而分配的空间不会被后续调用覆盖和重新使用。

scha_resource_close() 函数接受上次调用 scha_resource_open() 时返回的 handle 参数。它将使该句柄失效,并释放为了保存使用该句柄执行的 scha_resource_get() 调用的返回值而分配的内存。

下文中列出了 scha_tags.h 中定义的可以用作 scha_resource_get()tag 参数的宏。

指示输出参数和任何其他参数的类型。scha_calls(3HA) 中介绍了结构和 enum 类型。

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_RESTARTSSCHA_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* 的两个附加参数。第一个参数提供扩展属性的名称,第二个参数命名群集节点。返回指定节点的属性类型及其值。

当用户请求未指定明确值的节点上的该属性的值时,将会返回在 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 版本还会返回为资源依赖性声明的作用域或限定符(如果有)。r_properties(5) 手册页中介绍了 {LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}@node 限定符。

SCHA_RESOURCE_DEPENDENCIES_Q_OFFLINE_RESTART

输出参数类型为 scha_str_array_t**

SCHA_RESOURCE_DEPENDENCIES_OFFLINE_RESTART 标记的 Q 版本还会返回为资源依赖性声明的作用域或限定符(如果有)。r_properties(5) 手册页中介绍了 {LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}@node 限定符。

SCHA_RESOURCE_DEPENDENCIES_Q_RESTART

输出参数类型为 scha_str_array_t**

SCHA_RESOURCE_DEPENDENCIES_RESTART 标记的 Q 版本还会返回为资源依赖性声明的作用域或限定符(如果有)。r_properties(5) 手册页中介绍了 {LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}@node 限定符。

SCHA_RESOURCE_DEPENDENCIES_Q_WEAK

输出参数类型为 scha_str_array_t**

SCHA_RESOURCE_DEPENDENCIES_WEAK 标记的 Q 版本还会返回为资源依赖性声明的作用域或限定符(如果有)。r_properties(5) 手册页中介绍了 {LOCAL_NODE}{ANY_NODE}{FROM_RG_AFFINITIES}@node 限定符。

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_ZONEoptag 检索的值是 GLOBAL_ZONE_OVERRIDE 属性的当前值,而不是 GLOBAL_ZONE 属性的值。有关更多信息,请参见 rt_properties(5) 手册页中的 Global_zone 属性和 r_properties(5) 手册页中的 Global_zone_override 属性的描述。

返回值

这些函数返回以下值:

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
接口稳定性
Evolving(发展中)

另请参见

scha_resource_get(1HA)scha_calls(3HA)scha_strerror(3HA)attributes(5)r_properties(5)rt_properties(5)rt_reg(4)