cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib –l dsdev#include <rgm/libdsdev.h>
数据服务开发库 (Data Services Development Library, DSDL) 是一组用于封装和扩展 scha 库函数功能的较高级别的库函数。scha_calls(3HA) 手册页对 scha 库函数进行了说明。
DSDL 函数是在 libdsdev.so 库中实现的。
DSDL 函数通常分为以下几类。
通用函数
通用函数包括初始化函数、检索函数、故障转移与重新启动函数以及执行函数。使用这些函数可以执行以下操作:
初始化 DSDL 环境
检索资源类型、资源和资源组名称及扩展属性值
故障转移和重新启动资源组及重新启动资源
将错误字符串转换为错误消息
在超时的时间之内执行命令
属性函数
这些函数提供了公用 API,可用来访问相关资源类型、资源和资源组的特定属性,其中包括一些常用的扩展属性。DSDL 提供 scds_initialize() 函数,可用来解析命令行参数。然后该库将缓存相关资源类型、资源和资源组的各种属性。
网络资源访问函数
这些函数可用来管理资源和资源组使用的网络资源。这些函数可用来处理主机名、端口列表和网络地址,并可启用基于 TCP 的监视。
进程监视器工具 (Process Monitor Facility, PMF) 函数
这些函数封装 Process Monitor Facility (PMF) 功能。
故障监视器函数
这些函数通过保留故障历史记录,并与 Retry_count 和 Retry_interval 属性结合使用来对其进行评估,提供了一种预定的故障监视模型。
实用程序函数
使用这些函数可以向系统日志写入消息和调试消息。
以下函数可初始化调用方法:
scds_initialize(3HA)-分配资源和初始化 DSDL 环境。
scds_close(3HA)-释放由 scds_initialize() 函数分配的资源。
以下函数可用于检索有关资源类型、资源、资源组和扩展属性的信息:
scds_free_ext_property(3HA)-释放由 scds_get_ext_property() 分配的内存。
scds_get_fullname(3HA)-检索区域节点名称。
scds_get_fullname_nodeid(3HA)-检索带有 ASCII 节点 ID 号的区域节点名称。
scds_get_resource_type_name(3HA )-检索调用程序的资源类型的名称。
scds_get_resource_name(3HA)-检索调用程序的资源的名称。
scds_get_resource_group_name(3HA )-检索调用程序的资源组的名称。
scds_get_ext_property(3HA)-检索指定扩展属性的值。
scds_get_current_method_name(3HA )-检索通过其调用数据服务方法的路径名的最后一个元素。请参见 basename(3C) 手册页。
scds_is_zone_cluster(3HA)-返回表示是否已在区域群集中配置资源的布尔值。
以下函数用于检索有关由资源使用的 SUNW.HAStoragePlus 资源的状态信息:
scds_hasp_check(3HA)-检索有关由资源使用的 SUNW.HAStoragePlus 资源的状态信息。使用为该资源定义的 Resource_dependencies 或 Resource_dependencies_weak 系统属性,从资源依赖的所有SUNW.HAStoragePlus 资源的状态(联机或其他)中获取此信息。有关更多信息,请参见 SUNW.HAStoragePlus(5) 手册页。
以下函数可用于故障转移或重新启动资源或资源组:
scds_failover_rg(3HA)-故障转移资源组。
scds_restart_rg(3HA)-重新启动资源组。
scds_restart_resource(3HA)-重新启动资源。
以下函数用来在超时的时间之内执行命令,并将错误代码转换为错误消息。
scds_timerun(3HA)-在超时值的时间之内执行命令。
scds_error_string(3HA) 和 scds_error_string_i18n(3HA)-将错误代码转化为错误字符串。由 scds_error_string() 返回的字符串以英文显示。由 scds_error_string_i18n() 返回的字符串将以 LC_MESSAGES 语言环境类别指定的本机语言显示。
scds_svc_wait(3HA)-等待要停止的受监视进程的指定超时周期。
这些函数提供了公用 API,可用来访问相关资源类型、资源和资源组的特定属性,其中包括一些常用的扩展属性。DSDL 提供 scds_initialize() 函数,可用来解析命令行参数。然后该库将缓存相关资源类型、资源和资源组的各种属性。
scds_property_functions(3HA) 手册页对这些函数进行了说明,其中包括以下函数:
scds_get_ext_property-name
scds_get_rg_property-name
scds_get_rs_property-name
scds_get_rt_property-name
以下函数可用于处理主机名:
scds_get_rs_hostnames(3HA)-检索由资源使用的主机名列表。
scds_get_rg_hostnames(3HA )-检索资源组中网络资源使用的主机名列表。
scds_print_net_list(3HA)-向 syslog(3C) 写入主机名列表的内容。通常可使用该函数进行调试。
scds_free_net_list(3HA)-释放由 scds_get_rs_hostnames() 或 scds_get_rg_hostnames() 分配的内存。
以下函数可用于处理端口列表:
scds_get_port_list(3HA)-检索由资源使用的端口协议对的列表。
scds_print_port_list(3HA)-向 syslog(3C) 写入端口协议列表的内容。通常可使用该函数进行调试。
scds_free_port_list(3HA)-释放由 scds_get_netaddr_list() 分配的内存。
以下函数可用于处理网络地址:
scds_get_netaddr_list(3HA)-检索由资源使用的网络地址列表。
scds_print_netaddr_list(3HA)-向 syslog(3C) 写入网络地址列表的内容。通常可使用该函数进行调试。
scds_free_netaddr_list(3HA)-释放由 scds_get_netaddr_list() 分配的内存。
以下函数用于启用基于 TCP 的监视。通常,故障监视器使用这些函数建立与服务的简单套接字连接,向该服务读写数据以确定其状态,然后从该服务断开连接。
这组函数包含以下函数:
scds_fm_tcp_connect(3HA)-建立与仅使用 IPv4 寻址的进程的 TCP 连接。
scds_fm_net_connect(3HA)-建立与使用 IPv4 或 IPv6 寻址的进程的 TCP 连接。
scds_fm_tcp_read(3HA)-使用 TCP 连接从所监视的进程读取数据。
scds_fm_tcp_write(3HA)-使用 TCP 连接向所监视的进程写入数据。
scds_simple_probe(3HA)-通过建立和终止与进程的 TCP 连接来探测该进程。该函数仅用于处理 IPv4 地址。
scds_simple_net_probe(3HA)-通过建立和终止与进程的 TCP 连接来探测该进程。该函数可用于处理 IPv4 或 IPv6 地址。
scds_fm_tcp_disconnect(3HA)-终止与所监视的进程的连接。该函数仅用于处理 IPv4 地址。
scds_fm_net_disconnect(3HA)-终止与所监视的进程的连接。该函数可用于处理 IPv4 或 IPv6 地址。
这些函数封装进程监视器工具 (Process Monitor Facility, PMF) 函数。通过 PMF 进行监视的 DSDL 模型可以创建并使用 pmfadm 的隐式 tag 值。有关更多信息,请参见 pmfadm(1M) 手册页。
PMF 工具还对 Restart_interval、Retry_count 和 action_script(pmfadm 的 –t、–n 和 –a 选项)使用隐式值。最重要的是,DSDL 会将 PMF 确定的进程故障历史记录与故障监视器检测到的应用程序故障历史记录关联起来,以通过计算决定是进行重新启动还是进行故障转移。
这组函数包含以下函数:
scds_pmf_get_status(3HA)-确定指定的实例是否在 PMF 控制下进行监视。
scds_pmf_restart_fm(3HA)-使用 PMF 重新启动故障监视器。
scds_pmf_signal(3HA)-向在 PMF 控制下运行的进程树发送指定信号。
scds_pmf_start(3HA) 和 scds_pmf_start_env(3HA)-在 PMF 控制下执行指定的程序(包括故障监视器)。除了可执行与 scds_pmf_start() 函数一样的操作外,scds_pmf_start_env() 函数还可将提供的环境传送给已执行的程序。
scds_pmf_stop(3HA)-终止在 PMF 控制下运行的进程。
scds_pmf_stop_monitoring(3HA)-停止对在 PMF 控制下运行的进程的监视。
这些函数通过保留故障历史记录,并与 Retry_count 和 Retry_interval 属性结合使用来对故障历史记录进行评估,提供了一种预定的故障监视模型。
这组函数包含以下函数:
scds_fm_sleep(3HA)-等待故障监视器控制套接字的消息。
scds_fm_action(3HA)-在探测完成后执行操作。
scds_fm_print_probes(3HA)-将探测状态信息写入系统日志。
scds_syslog(3HA)-将消息写入系统日志。
scds_syslog_debug(3HA)-将调试消息写入系统日志。
头文件
库
有关下列属性的说明,请参见 attributes(5):
|
pmfadm(1M)、scds_close(3HA)、scds_error_string(3HA)、scds_error_string_i18n(3HA)、scds_failover_rg(3HA)、scds_fm_action(3HA)、scds_fm_net_connect(3HA)、scds_fm_net_disconnect(3HA)、scds_fm_print_probes(3HA)、scds_fm_sleep(3HA)、scds_fm_tcp_connect(3HA)、scds_fm_tcp_disconnect(3HA)、scds_fm_tcp_read(3HA)、scds_fm_tcp_write(3HA)、scds_free_ext_property(3HA)、scds_free_net_list(3HA)、scds_free_netaddr_list(3HA)、scds_free_port_list(3HA)、scds_get_ext_property(3HA)、scds_get_fullname(3HA)、scds_get_netaddr_list(3HA)、scds_get_port_list(3HA)、scds_get_resource_group_name(3HA )、scds_get_resource_name(3HA)、scds_get_resource_type_name(3HA )、scds_get_rg_hostnames(3HA )、scds_get_rs_hostnames(3HA)、scds_hasp_check(3HA)、scds_initialize(3HA)、scds_is_zone_cluster(3HA)、scds_pmf_get_status(3HA)、scds_pmf_restart_fm(3HA)、scds_pmf_signal(3HA)、scds_pmf_start(3HA)、scds_pmf_stop(3HA)、scds_pmf_stop_monitoring(3HA)、scds_print_net_list(3HA)、scds_print_netaddr_list(3HA)、scds_print_port_list(3HA)、scds_property_functions(3HA)、scds_restart_resource(3HA)、scds_restart_rg(3HA)、scds_simple_net_probe(3HA)、scds_simple_probe(3HA)、scds_svc_wait(3HA)、scds_syslog(3HA)、scds_syslog_debug(3HA)、scds_timerun(3HA)、scha_calls(3HA)、SUNW.HAStoragePlus(5)、attributes(5)