Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

获取特性信息

多数回调方法都需要获取有关数据服务的资源特性和资源类型特性的信息。为实现此操作,API 提供了 scha_resource_get() 函数。

可以获取系统定义的特性和扩展特性这两种资源特性。已经预先定义了系统定义的特性,然而您需要在 RTR 文件中定义扩展特性。

当您使用 scha_resource_get() 获取系统定义的特性的值时,需要使用 -O 参数指定该特性的名称。命令仅返回该特性的。例如,在数据服务样例中,Monitor_start 方法需要定位探测程序,以便可以启动该程序。探测程序位于数据服务的基目录,即 RT_basedir 特性所指向的目录,因此 Monitor_start 方法将检索 RT_basedir 的值,并将该值放置在 RT_basedir 变量中,如下所示。


RT_BASEDIR=`scha_resource_get -O RT_BASEDIR -R $RESOURCE_NAME -G \
$RESOURCEGROUP_NAME`

对于扩展特性,您必须使用 -O 参数指定该特性为扩展特性,并提供特性的名称作为最后一个参数。对于扩展特性,命令将同时返回该特性的类型。例如,在数据服务样例中,探测程序将检索 probe_timeout 扩展特性的类型和值,然后使用 awk 将该值仅放置在 PROBE_TIMEOUT shell 变量中,如下所示。


probe_timeout_info=`scha_resource_get -O Extension -R $RESOURCE_NAME \
-G $RESOURCEGROUP_NAME Probe_timeout` 
PROBE_TIMEOUT=`echo $probe_timeout_info | awk '{print $2}'`