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.
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:
Envía un mensaje REMOVE_EVENTS que especifica uno o varios tipos de eventos para los que el cliente no se ha registrado con anterioridad.
Registra el mismo tipo de evento dos veces
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 |