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}'`