Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

El método Stop

RGM invoca el método de rellamada Stop de una implementación del tipo de recurso en un nodo del clúster para detener la aplicación. La semántica de la rellamada del método Stop requiere estas condiciones:

La utilidad scds_pmf_stop() de DSDL debería bastar para casi todas las aplicaciones ya que en primer lugar intenta detenerlas de forma no drástica (a través de SIGTERM) (asume que se inició con PMF mediante scds_pmf_start()) seguido por el envío de SIGKILL al proceso. Consulte Funciones de PMF para obtener más detalles sobre esta utilidad.

Siguiendo el modelo del código que hemos utilizado hasta ahora, presuponiendo que la función específica de la aplicación para detener la aplicación se denomine svc_stop() (que la implementación de svc_stop() utilice scds_pmf_stop() no es relevante en este momento y dependerá de que la aplicación se haya iniciado bajo PMF con el método Start), el método Stop se puede implementar de la manera siguiente:

if (scds_initialize(&handle, argc, argv)!= SCHA_ERR_NOERR)
{
   return (1);   /* Error de inicialización */
}
return (svc_stop(handle));

El método svc_validate() no se utiliza en la implementación del método Stop, porque aunque el sistema tenga actualmente un problema, el método Stop debería intentar detener la aplicación en este nodo.