本章列举并简单介绍了数据服务开发库 (DSDL) API 函数。有关每一个 DSDL 函数的完整介绍,请参见各个 3HA 手册页。DSDL 仅定义了一个 C 接口。基于脚本的 DSDL 接口不可用。
以下各小节简要介绍了各类 DSDL 函数。但是,各个 3HA 手册页才是 DSDL 函数的权威参考。
本节中介绍的函数具有很多功能。使用这些函数您可以执行以下操作:
初始化 DSDL 环境
检索资源、资源类型和资源组名称以及扩展特性值
进行故障转移并重启资源组以及重启资源
将错误字符串转换成错误消息
在超时值定义的时间之内执行命令
以下函数用来初始化调用方法:
scds_initialize(3HA) - 分配资源并初始化 DSDL 环境。
scds_close( 3HA) - 释放由 scds_initialize 分配的资源。
以下函数用来检索有关资源、资源类型、资源组和扩展特性的信息:
scds_get_resource_name(3HA) - 为调用程序检索资源名称。
scds_get_resource_type_name(3HA) - 为调用程序检索资源类型的名称。
scds_get_resource_group_name(3HA) - 为调用程序检索资源组的名称。
scds_get_ext_property(3HA) - 检索指定扩展特性的值。
scds_free_ext_property(3HA) - 释放由 scds_get_ext_property 分配的内存。
以下函数用来检索某资源所使用的所有 SUNW.HAStoragePlus 资源的状态信息:
scds_hasp_check(3HA) - 检索某资源所使用的所有 SUNW.HAStoragePlus(5) 资源的状态信息。此信息来自该资源所依赖的所有 SUNW.HAStoragePlus 资源的状态(联机或脱机),它是通过使用为该资源定义的 Resource_dependencies 或 Resource_dependencies_weak 系统特性获得的。
以下函数用来进行故障转移或重新启动资源或资源组:
scds_failover_rg(3HA) - 对资源组进行故障转移。
scds_restart_rg(3HA) - 重新启动资源组。
scds_restart_resource(3HA) - 重新启动资源。
以下函数在超时值定义的时间内执行命令,并将错误代码转换成错误消息:
scds_timerun( 3HA) - 在超时值定义的时间内执行命令。
scds_error_string(3HA) - 将错误代码转换成表示该错误的字符串。
这些函数提供了公用 API,可用来存取相关资源、资源组和资源类型的具体特性,其中包括一些常用的扩展特性。DSDL 提供了 scds_initialize 函数,可用来分析命令行参数。然后该库将缓存相关资源、资源组和资源类型的各种特性。
scds_property_functions(3HA) 中介绍了这些函数。这些函数包括:
scds_get_rs_property_name
scds_get_rg_property_name
scds_get_rt_property_name
scds_get_ext_property_name
本节中列出的函数用来检索、打印和释放资源和资源组所使用的网络资源。本节中的 scds_get_* 函数提供了一种可用来检索网络资源而又无需使用 RMAPI 函数查询具体特性(例如 Network_resources_used 和 Port_list)的简便方式。scds_print_name() 函数用来打印 scds_get_ name() 函数返回的数据结构的值。scds_free_ name() 函数用来释放通过 scds_get_name() 函数分配的内存。
scds_get_rg_hostnames(3HA) - 检索资源组中的网络资源所使用的主机名的列表。
scds_get_rs_hostnames(3HA) - 检索资源所使用的主机名的列表。
scds_print_net_list(3HA) - 打印 scds_get_rg_hostnames() 或 scds_get_rs_hostnames() 返回的主机名列表的内容。
scds_free_net_list(3HA) - 释放由 scds_get_rg_hostnames() 或 scds_get_rs_hostnames() 分配的内存。
用于处理端口列表的函数包括:
scds_get_port_list(3HA) - 检索资源使用的端口协议对的列表。
scds_print_port_list(3HA) - 打印由 scds_get_port_list() 返回的端口协议对的列表内容。
scds_free_port_list(3HA) - 释放由 scds_get_port_list() 分配的内存。
scds_get_netaddr_list(3HA) - 检索资源所使用的网络地址的列表。
scds_print_netaddr_list(3HA) - 打印由 scds_get_netaddr_list 返回的网络地址的列表内容。
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 寻址的进程的连接。
这些函数封装了 PMF 的功能。通过 PMF 进行监视的 DSDL 模型可以创建并使用 pmfadm(1M) 的隐含 tag 值。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) - 在 PMF 的控制下执行指定程序(包括故障监视器)。
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) - 将调试消息写入到系统日志中。