Oracle® Solaris Cluster 参考手册

退出打印视图

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

scha_resourcegroup_close (3HA)

名称

scha_resourcegroup_open, scha_resourcegroup_open_zone, scha_resourcegroup_get, scha_resourcegroup_get_zone, scha_resourcegroup_close - 资源信息访问函数

用法概要

cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l scha#include <scha.h>scha_err_t scha_resourcegroup_open( const char *rgname, scha_resourcegroup_t *handle);
scha_err_t scha_resourcegroup_open_zone( const char *cluster, const char *rg_name, scha_resourcegroup_t * handlep);
scha_err_t scha_resourcegroup_close(scha_resourcegroup_t handle);
scha_err_t scha_resourcegroup_get(scha_resourcegroup_t handle, const char *tag...);
scha_err_t scha_resourcegroup_get_zone(const char *cluster, 
     scha_resourcegroup_t handlep, const char *rg_tag, ...);

描述

scha_resourcegroup_open()scha_resourcegroup_get ()scha_resourcegroup_close() 函数一起使用可以访问资源组管理器 (Resource Group Manager, RGM) 群集工具管理的资源组的相关信息。

scha_resourcegroup_open() 初始化资源组访问,并返回一个将由 scha_resourcegroup_get () 使用的句柄。

rgname 参数指定要访问的资源组的名称。

handle 参数是用于保存函数返回值的某个变量的地址。

scha_resourcegroup_get() 根据 tag 参数的指示访问资源组信息。tag 应该是 scha_tags.h 头文件中的某个宏定义的一个字符串值。标记后面的参数取决于 tag 的值。可能需要在标记后面额外添加一个参数,用于指定要从中检索信息的群集节点。

参数列表中最后一个参数的类型应该适合用于保存 tag 指定的信息。该参数是要检索的资源组信息的输出参数。如果函数失败,不会为输出参数返回值。对用于 scha_resourcegroup_get() 的句柄调用 scha_resourcegroup_close() 之前,所分配的用于保存 scha_resourcegroup_get() 返回的信息的内存将保持不变。

scha_resourcegroup_close() 接受上次调用 scha_resourcegroup_open() 时返回的 handle 参数。它将使句柄失效,并释放为了保存使用该句柄执行的 scha_resourcegroup_get() 调用的返回值而分配的内存。请注意,如果需要返回值,则为每个 get 调用分配内存。在一个调用中为返回值而分配的空间不会被后续调用覆盖或重新使用。

scha_resourcegroup_open_zone()scha_resourcegroup_get_zone() 函数的作用分别与 scha_resourcegroup_open()scha_resourcegroup_get() 相同,但带有一个额外的 cluster 参数,用于指定资源组存在于其中且您要在其上执行操作的区域群集的名称。当代码在全局区域中执行,但需要在指定区域群集上操作时,这些函数十分有用。无法在某一区域群集中使用它们来访问其他区域群集。

如果 scha_resourcegroup_open_zone()scha_resourcegroup_get_zone()cluster 参数为 NULL,则会对执行调用的群集执行查询;换句话说,带有 NULL 参数的调用分别等效于 scha_resourcegroup_open()scha_resourcegroup_get()

要关闭由 scha_resourcegroup_open_zone() 返回的句柄,请使用 scha_resourcegroup_close()。不需要 cluster 参数。

可用于 tag 参数的宏

可以将 scha_tags.h 中定义的下列宏用作 scha_resourcegroup_get () 函数的 tag 参数。这些宏用于指定资源组属性的名称。将生成资源组属性的值。RG_STATE 属性在调用函数的节点上引用该值。

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

SCHA_ALL_LOAD_FACTORS

输出参数类型为 scha_str_array_t**

SCHA_ALL_LOAD_FACTOR_NAMES

输出参数类型为 scha_str_array_t**

SCHA_DESIRED_PRIMARIES

输出参数类型为 int*

SCHA_FAILBACK

输出参数类型为 boolean_t*

SCHA_LOAD_FACTOR

输出参数类型为 int*

SCHA_GLOBAL_RESOURCES_USED

输出参数类型为 scha_str_array_t**

SCHA_IMPL_NET_DEPEND

输出参数类型为 boolean_t*

SCHA_MAXIMUM_PRIMARIES

输出参数类型为 int*

SCHA_NODELIST

输出参数类型为 scha_str_array_t**

SCHA_PATHPREFIX

输出参数类型为 char**

SCHA_PINGPONG_INTERVAL

输出参数类型为 int*

SCHA_PREEMPTION_MODE

输出参数类型为 scha_rg_preemption_mode_t*

SCHA_PRIORITY

输出参数类型为 int*

SCHA_RESOURCE_LIST

输出参数类型为 scha_str_array_t**

SCHA_RG_AFFINITIES

输出参数类型为 char**

SCHA_RG_AUTO_START

输出参数类型为 boolean_t*

SCHA_RG_DEPENDENCIES

输出参数类型为 scha_str_array_t**

SCHA_RG_DESCRIPTION

输出参数类型为 char**

SCHA_RG_IS_FROZEN

输出参数类型为 boolean_t*

SCHA_RG_MODE

输出参数类型为 scha_rgmode_t*

SCHA_RG_PROJECT_NAME

输出参数类型为 char**

SCHA_RG_SLM_CPU

输出参数类型为 char**

SCHA_RG_SLM_CPU_MIN

输出参数类型为 char**

SCHA_RG_SLM_PSET_TYPE

输出参数类型为 char**

SCHA_RG_SLM_TYPE

输出参数类型为 char**

SCHA_RG_STATE

输出参数类型为 scha_rgstate_t*

SCHA_RG_STATE_NODE

输出参数类型为 scha_rgstate_t*。一个附加参数类型为 char*。该附加参数指定群集节点的名称,并返回该节点上的资源组的状态。

SCHA_RG_SUSP_AUTO_RECOVERY

输出参数类型为 boolean_t*

SCHA_RG_SYSTEM

输出参数类型为 boolean_t*

SCHA_TARGET_NODES

输出参数类型为 scha_str_array_t**

返回值

这些函数返回下列值:

0

该函数成功。

非零值

该函数失败。

错误

SCHA_ERR_NOERR

该函数成功。

有关其他错误代码的描述,请参见 scha_calls(3HA)

示例

示例 1 使用 scha_resourcegroup_get() 函数

以下示例使用 scha_resourcegroup_get() 来获取资源组 example_RG 中的资源的列表。

main() {
   #include <scha.h>

   scha_err_t err;
   scha_str_array_t *resource_list;
   scha_resourcegroup_t handle;
   int ix;

   char * rgname = "example_RG";	

   err = scha_resourcegroup_open(rgname, &handle);

   err = scha_resourcegroup_get(handle, SCHA_RESOURCE_LIST, \
         &resource_list);

   if (err == SCHA_ERR_NOERR) {
    for (ix = 0; ix < resource_list->array_cnt; ix++) {
        printf("Group: %s contains resource %s\n", rgname,
                resource_list->str_array[ix]);
        }
    }

/* resource_list memory freed */
 err = scha_resourcegroup_close(handle);	
}

文件

/usr/cluster/include/scha.h

头文件

/usr/cluster/lib/libscha.so

属性

有关以下属性的描述,请参见 attributes(5)

属性类型
属性值
可用性
ha-cluster/developer/api
接口稳定性
Evolving(发展中)

另请参见

clnode(1CL)scha_resourcegroup_get(1HA)scha_calls(3HA)attributes(5)