Sun Cluster 框架使用回调机制来提供数据服务与 RGM 之间的通信。此框架定义了一组回调方法,这包括它们的参数和返回值,以及 RGM 调用各个方法时的情况。
通过对一组单个回调方法编码并将每个方法作为 RGM 可以调用的控制程序来实现,可以创建数据服务。也就是说,数据服务不是由一个可执行脚本或二进制文件 (C) 组成的,而是由多个可执行脚本 (ksh) 或二进制文件 (C) 组成的,RGM 可以直接调用其中任何一个对象。
回调方法是通过 RTR 文件向 RGM 注册的。在 RTR 文件中,可以标识已经为数据服务实现的每个方法的程序。当群集管理员在群集上注册数据服务时,RGM 将读取 RTR 文件,该文件提供了回调程序的标识以及其他信息。
资源类型必需的回调方法仅包括启动方法(Start 或 Prenet_start)和停止方法(Stop 或 Postnet_stop)。
回调方法可以分为以下几类:
控制和初始化方法
Start 和 Stop 方法用于启动和停止正被联机或脱机的组中的资源。
Init、Fini 和 Boot 方法将执行对资源的初始化和终止代码。
管理支持方法
Validate 方法用于验证由管理操作设置的属性。
Update 方法用于更新联机资源的属性设置。
与网络相关的方法
在同一资源组中的网络地址被配置为“启用”之前或“关闭”之后,Prenet_start 和 Postnet_stop 将执行特殊的启动或关闭操作。
监视器控制方法
Monitor_start 和 Monitor_stop 用于启动或停止资源的监视器。
Monitor_check 用于在将资源组移至节点之前评估该节点的可靠性。
有关回调方法的更多信息,请参见第 3 章,资源管理 API 参考和 rt_callbacks(1HA) 手册页。有关样例数据服务中的回调方法,另请参见第 5 章,数据服务样例和第 8 章,DSDL 资源类型实现样例。