Limpieza de mútex y memoria compartida
En los sistemas UNIX®, Linux®, y z/OS®, si el broker o el agente se detienen incorrectamente, es posible que tenga que limpiar manualmente los mutex y la memoria compartida que se utilizan en la comunicación de datos entre el nodo CandleMonitor y el agente.
Los síntomas de este problema son los siguientes:
- Al iniciarse, el agente no se inicializa completamente.
- Los posteriores intentos de concluir el agente se cuelgan.
- Faltan datos de información, y hay un suceso Broker_Not_Responding. Faltan datos estadísticos con al menos un nodo CandleMonitor desplegado.
Lleve a cabo los siguientes pasos para limpiar mútexes y memoria compartida:
- Detenga el agente y los intermediarios supervisados por el agente.
- En UNIX, sistemas Linux, o z/OS UNIX (en sistemas z/OS ):
- Emita el mandato ipcs -a .
- En la salida generada, busque todas las colas de mensajes con los ID de usuario de los intermediarios y los ID de usuario de los agentes, y registre los ID y el campo CLAVE de cada uno de ellos.
- Busque todos los semáforos que tienen un campo CLAVE que coincida con los campos CLAVE de las colas de mensajes, y registre el campo ID de cada uno de ellos.
- Busque toda la memoria compartida que tenga ID de usuario de los intermediarios, ID de usuario de los agentes y un campo NATTCH de 0, y registre el campo ID de cada uno de ellos.
- Cambie a un ID de usuario que pueda emitir el mandato ipcrm; el ID de usuario que vaya a ser el ID de usuario del propietario (en la salida ipcs –a), un ID de usuario del mismo grupo que el propietario, o un ID de usuario root.
- Para cada cola de mensajes que haya registrado, emita el mandato ipcrm -q <ID> .
- Para cada semáforo que haya registrado, emita el mandato ipcrm -s <ID>.
- Para cada memoria compartida que haya registrado, emita el mandato ipcrm -m <ID>.
- Reinicie los intermediarios y el agente.