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

编程接口

资源管理体系结构为编写数据服务代码提供了一个低级别 API(即基本 API)、一个构建在基本 API 之上的较高级别的库和 SunPlex Agent Builder 工具,该工具可以根据您提供的基本输入内容自动生成数据服务。

Resource Management API(资源管理 API)

资源管理 API (RMAPI) 提供了一组低级函数,这些函数可以启用数据服务,以访问有关系统中的资源类型、资源和资源组的信息,请求本地重新启动或故障转移,以及设置资源状态。通过 libscha.so 库可以访问这些函数。RMAPI 以 shell 命令和 C 函数的形式提供这些回调方法。有关 RMAPI 函数的更多信息,请参见 scha_calls(3HA) 手册页和第 3 章,资源管理 API 参考。有关如何在样例数据服务回调方法中使用这些函数的示例,另请参见第 5 章,数据服务样例

数据服务开发库

构建在 RMAPI 之上的是数据服务开发库 (DSDL),它提供了一个较高级别的集成框架,同时保留了 RGM 的底层方法回调模型libdsdev.so 库包含 DSDL 函数。DSDL 集成了各种数据服务开发工具,包括:

对于大多数应用程序,DSDL 提供了生成数据服务所需的多数或所有功能。但请注意,DSDL 不会替代低级 API,而是封装并扩展它。事实上,许多 DSDL 函数都调用 libscha.so 函数。同样地,当使用 DSDL 为数据服务的主体编码时,您可以直接调用 libscha.so 函数。

有关 DSDL 的更多信息,请参见第 6 章,数据服务开发库scha_calls(3HA) 手册页。

SunPlex Agent Builder

Agent Builder 是自动创建数据服务的工具。您输入有关目标应用程序和要创建的数据服务的基本信息。Agent Builder 将生成一个数据服务,其中包括源代码和可执行代码(C 或 Korn shell)、自定义的 RTR 文件和 Solaris 软件包。

对于多数应用程序,都可以使用 Agent Builder 生成完整的数据服务,且只需您进行很少的手动更改。具有较复杂要求(例如,对附加属性添加验证检查)的应用程序可能需要执行 Agent Builder 无法完成的操作。但是,即使在这些情况下,您也可以使用 Agent Builder 生成代码的主体,然后再手动编写剩余代码。至少,您可以使用 Agent Builder 生成 Solaris 软件包。