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

Cómo se pasan los mensajes SC_CALLBACK_REG entre el cliente y el servidor

El cliente inicia el registro mediante la apertura de una conexión TCP con la dirección IP y el número de puerto del servidor. Una vez establecida la conexión TCP y lista para escribir, el cliente debe enviar su mensaje de registro. Éste debe ser un mensaje SC_CALLBACK_REG de formato correcto que no contenga bytes adicionales antes ni después del mensaje.

Una vez escritos todos los bytes en el canal, el cliente debe mantener la conexión abierta para recibir la respuesta del servidor. Si el cliente no le da el formato correcto al mensaje, el servidor no registrará el cliente y le enviará una respuesta de error. No obstante, si el cliente cierra la conexión de socket antes de que el servidor envíe una respuesta, éste registra el cliente como normal.

Un cliente puede ponerse en contacto con el servidor en cualquier momento. Cada vez que un cliente se pone en contacto con el servidor, el cliente debe enviar un mensaje SC_CALLBACK_REG. Si el servidor recibe un mensaje con formato erróneo, fuera de servicio o no válido, envía una respuesta de error al cliente.

Un cliente no puede enviar mensajes ADD_EVENTS, REMOVE_EVENTS , or REMOVE_CLIENT antes de enviar un mensaje ADD_CLIENT. Un cliente no puede enviar un mensaje REMOVE_CLIENT antes de enviar un mensaje ADD_CLIENT.

Si un cliente envía un mensaje ADD_CLIENT y el cliente ya está registrado, es posible que el servidor tolere el mensaje. En este caso, el servidor sustituye silenciosamente el registro anterior del cliente por el nuevo, especificado en el segundo mensaje ADD_CLIENT.

En la mayoría de los casos, un cliente se registra sólo una vez en el servidor, al comenzar, con un mensaje ADD_CLIENT. Para anular el registo de un cliente, se envía un mensaje REMOVE_CLIENT al servidor. Sin embargo, CRNP proporciona una mayor flexibilidad a aquellos clientes que tengan que modificar dinámicamente la lista de tipos de eventos.

Contenido de un mensaje SC_CALLBACK_REG

Cada mensaje ADD_CLIENT, REMOVE_CLIENT, ADD_EVENTS y REMOVE_EVENTS contiene una lista de eventos. La tabla siguiente describe los tipos de eventos que acepta CRNP, incluidos los valores requeridos de nombre y valor.

Si un cliente realiza una de las siguientes acciones, el servidor ignorará de forma silenciosa los siguientes mensajes:

Clase y subclase 

Pares nombre-valor 

Descripción 

EC_Cluster

ESC_cluster_membership

Siempre: ninguno 

Opcional: ninguno 

Registra todos los eventos de cambio en los miembros del clúster (terminación de nodo o unión) 

EC_Cluster

ESC_cluster_rg_state

Uno necesario, como sigue: 

rg_name

Tipo de valor: cadena 

Opcional: ninguno 

Registra todos los eventos de cambio de estado del grupo de recursos name

EC_Cluster

ESC_cluster_r_state

Uno necesario, como sigue: 

r_name

Tipo de valor: cadena 

Opcional: ninguno 

Registra todos los eventos de cambio de estado del recurso nombre

EC_Cluster

Ninguna 

Siempre: ninguno 

Opcional: ninguno 

Registra todos los eventos de Sun Cluster