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

更改方法代码

如果已更新的资源类型中仅更改了方法代码,那么确定新的方法代码是否与以前版本兼容就变得十分重要。 这样可以确定是否必须将新方法代码存储在新路径名下或旧的方法是否可以被覆写。

如果新的 StopPostnet_stopFini 方法(如果已声明)可以应用到通过 Start Prenet_stopInit 方法的旧版本初始化或启动的资源,那么就能够用新方法覆写旧方法。

如果新方法代码与以前版本不兼容,则必须使用该方法的旧版本停止或取消配置资源才能迁移到已升级的资源类型。 如果新方法要覆写旧方法,那么在升级资源类型之前,它可能会要求关闭(也许还要取消管理)该类型的所有资源。 如果新方法与旧方法存储在不同的位置(可以同时存取),则即使没有向下兼容性,也可以安装新的资源类型版本并逐个升级这些资源。

如果新方法可以向下兼容,则可能要求每次将一个资源升级为使用新方法,而其它资源继续使用旧的方法。 仍然需要将新方法存储在单独的目录中,而不覆写旧的方法。

将方法的每一个资源类型版本都存储在单独的目录中的优点是当新版本出现问题时可以很容易地转换回旧的资源类型版本。

一种封装方法是包含所有在软件包中仍然支持的早期版本。 这样做允许新的软件包版本替换旧的版本,而不覆写或删除旧的方法路径。 由资源类型开发者决定可以支持多少个以前版本。


注意:

建议不要在当前处于群集中的节点上覆写方法或对方法执行 pkgrm/pkgadd。 如果方法在磁盘上不可存取时,则 RGM 调用该方法时可能会导致意外的结果。 删除或替换正在运行的方法的二进制文件也可能会导致意外的结果。