本章列举并简单介绍了数据服务开发库 (DSDL) API 函数。 有关每一个 DSDL 函数的完整介绍,请参阅各个 3HA 手册页。 DSDL 仅定义了一个 C 接口。 没有可编写脚本的 DSDL 接口。
以下各小节简要介绍了各类 DSDL 函数。 但是,各个 3HA 手册页才是 DSDL 函数的权威参考。
初始化 DSDL 环境
检索资源、资源类型和资源组名称以及扩展特性值
进行故障切换并重启资源组以及重启资源
将错误字符串转换成错误消息
在超时值定义的时间之内执行命令
scds_initialize — 用来分配资源和初始化 DSDL 环境。
scds_close — 用来释放通过 scds_initialize 分配的资源。
以下函数用来检索有关资源、资源类型、资源组和扩展特性的信息。
scds_get_resource_name — 用来检索调用程序的资源的名称。
scds_get_resource_type_name — 用来检索调用程序的资源类型的名称。
scds_get_resource_group_name — 用来检索调用程序的资源组的名称。
scds_get_ext_property — 用来检索指定扩展特性的值。
scds_free_ext_property — 用来释放通过 scds_get_ext_property 分配的内存。
以下函数检索某资源所使用的 SUNW.HAStoragePlus 资源的状态信息。
scds_hasp_check — 用来检索某资源所使用的 SUNW.HAStoragePlus 资源的状态信息。 使用为该资源定义的 Resource_dependencies 或 Resource_dependencies_weak 系统特性,从资源依赖的所有 SUNW.HAStoragePlus 资源的状态(联机或其它)中获取此信息。
有关 SUNW.HAStoragePlus 的详细信息,请参阅 SUNW.HAStoragePlus(5)。
scds_failover_rg — 用来故障切换资源组。
scds_restart_rg — 用来重启资源组。
scds_restart_resource — 用来重启资源。
以下两个函数用来在超时值定义的时间之内执行命令,并将错误代码转换成错误消息。
scds_timerun — 用来在超时值定义的时间之内执行命令。
scds_error_string — 用来将错误代码转换成错误字符串。
这些函数提供了公用 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 – 用来检索某个资源组中网络资源使用的主机名列表。
scds_get_rs_hostnames — 用来检索该资源所使用的主机名列表。
scds_print_net_list — 用于打印通过 scds_get_rg_hostnames 或 scds_get_rs_hostnames 返回的主机名列表的内容。
scds_free_net_list — 用来释放通过 scds_get_rg_hostnames 或 scds_get_rs_hostnames 分配的内存。
以下函数用来执行与端口列表有关的操作。
scds_get_port_list — 用来检索某资源所使用的端口协议对的列表。
scds_print_port_list — 用来打印通过 scds_get_port_list 返回的端口协议对列表的内容。
scds_free_port_list — 用来释放通过 scds_get_port_list 分配的内存。
scds_get_netaddr_list — 用来检索某资源所使用的网络地址的列表。
scds_print_netaddr_list — 用来打印通过 scds_get_netaddr_list 返回的网络地址列表的内容。
scds_free_netaddr_list — 用来释放通过 scds_get_netaddr_list 分配的内存。
本节介绍的函数用来启用基于 TCP 的监视功能。 通常,故障监视器使用这些函数建立服务的简单套接字连接,对该服务进行读写操作以确定其状态,然后从该服务断开连接。
scds_tcp_connect — 用来建立进程的 TCP 连接。
scds_tcp_read — 使用 TCP 连接从所监视的进程读取数据。
scds_tcp_write — 使用 TCP 连接向所监视的进程写入数据。
scds_simple_probe — 用来通过建立和终止进程的 TCP 连接来探测该进程。
scds_tcp_disconnect — 用来终止所监视的进程的连接。
这些函数用来封装 PMF 功能。 通过 PMF 进行监视的 DSDL 模型可以创建并使用 pmfadm(1M) 的隐含 tag 值。 PMF 工具还使用 Restart_interval、Retry_count 和 action_script(pmfadm 的 -t、-n 和 -a 选项)的隐含值。 最重要的是,DSDL 将把 PMF 发现进程停止情况时进行的进程停止历史记录与故障监视器检测到故障情况时进行的应用程序故障历史记录结合起来,以通过计算决定是进行重启还是进行故障切换。
scds_pmf_get_status — 用来确定指定的实例是否在PMF 控制下进行监视。
scds_pmf_restart_fm — 使用 PMF 重启故障监视器。
scds_pmf_signal — 用来向在 PMF 控制下运行的进程树发送指定信号。
scds_pmf_start — 用来在 PMF 控制下执行指定的程序(包括故障监视器)。
scds_pmf_stop — 用来终止在 PMF 控制下运行的进程。
scds_stop_monitoring — 用来停止监视在 PMF 控制下运行的进程。
本节中介绍的函数通过保留失败历史记录,并与 Retry_count 和 Retry_interval 特性一起对其进行计算,提供了一种预设的故障监视模型。
本节介绍以下函数:
scds_fm_sleep — 用来等待故障监视器控制套接字的消息。
scds_fm_action — 用来在探测完成后执行操作。
scds_fm_print_probes — 用来将探测状态信息写入系统日志。
使用本节介绍的函数可以向系统日志写入消息和调试消息。 本节介绍以下两种函数:
scds_syslog – 向系统日志写入消息。
scds_syslog_debug — 用来将调试消息写入系统日志。