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

决定使用哪种 StartStop 方法

本节将对照 Prenet_startPostnet_stop 方法的使用,介绍一些有关何时使用 StartStop 方法的提示。 要正确决定要使用的方法,您必须对客户机和数据服务的客户机服务器网络协议有深入的了解。

使用网络地址资源的服务可能需要按照与逻辑主机名地址配置相关的特定顺序来执行启动或停止步骤。 可选的回叫方法 Prenet_start 允许资源类型实现在将同一资源组中的网络地址配置为启用之前执行特定的启动操作,而可选的回叫方法 Postnet_stop 允许资源类型实现在将同一资源组中的网络地址配置为关闭之后执行特定的关闭操作。

在调用数据服务的 Prenet_start 方法之前,RGM 调用检测网络地址(但不将网络地址配置为启用)的方法。 在调用数据服务的 Postnet_stop 方法之后,RGM 调用不检测网络地址的方法。 RGM 使资源组联机的顺序如下。

  1. 检测网络地址。

  2. 调用数据服务的 Prenet_start 方法(如果有)。

  3. 将网络地址配置为启用。

  4. 调用数据服务的 Start 方法(如果有)。

RGM 使资源组脱机时采用相反的顺序:

  1. 调用数据服务的 Stop 方法(如果有)。

  2. 将网络地址配置为关闭。

  3. 调用数据服务的 Postnet_stop 方法(如果有)。

  4. 取消检测网络地址。

当决定是否使用 StartStopPrenet_startPostnet_stop 方法时,首先要考虑服务器端。 当使同时包含数据服务应用程序资源和网络地址资源的资源组联机时,RGM 将在调用该数据服务资源的 Start 方法之前,调用用来将网络地址配置为启用的方法。 因此,如果数据服务需要在启动时将网络地址配置为启用,请使用 Start 方法启动该数据服务。

同样,当使同时包含数据服务资源和网络地址资源的资源组脱机时,RGM 将在调用数据服务资源的 Stop 方法之后,调用用来将网络地址配置为关闭的方法。 因此,如果数据服务需要在停止时将网络地址配置为关闭,请使用 Stop 方法来停止该数据服务。

例如,要启动或停止数据服务,您可能需要调用该数据服务的管理公用程序或库。 有时,数据服务具有使用客户机服务器网络接口进行管理的管理公用程序或库。 即管理公用程序将调用服务器守护程序,因此可能需要将网络地址配置为启用来使用管理公用程序或库。 在这种情况下请使用 StartStop 方法。

如果数据服务需要在启动和停止时将网络地址配置为关闭,请使用 Prenet_startPostnet_stop 方法来启动和停止该数据服务。 请考虑在进行群集重新配置(带有 SCHA_GIVEOVER 变量的 scha_control() 或带有 scswitch 命令的切换)之后,网络地址还是数据服务首先联机的不同情况会不会使客户机软件作出不同反应。 例如,客户机实现可能进行最小限度的重试,当确定数据服务端口不可用后将立即放弃重试。

如果数据服务不需要在启动时将网络地址配置为启用,请在将网络接口配置为启用之前启动该数据服务。 这样可以确保数据服务在完成将网络地址配置为启用后,立刻对客户机的请求作出反应,并且客户机不太可能停止重试。 在这种情况下,请不要使用 Start 方法,最好使用 Prenet_start 方法来启动数据服务。

如果使用 Postnet_stop 方法,在将网络地址配置为关闭时,数据服务资源仍然可用。 只有在网络地址配置为关闭后,才会调用 Postnet_stop 方法。 结果是,数据服务的 TCP 或 UDP 服务端口或其 RPC 程序号似乎始终可以供网路上的客户机使用(除了该网络地址也未作出反应的情况)。

与使用 Prenet_startPostnet_stop 方法相比,决定使用 StartStop 方法时,或决定同时使用这两套方法时,必须将服务器和客户机的要求和行为方式都考虑在内。