Gestión de ciclos de vida de la fábrica de conexiones gestionadas de CM Server

En este tema se describen las tareas de gestión de ciclos de vida para CM Server.

CM Server utiliza dos fábricas de conexiones gestionadas de J2C (una para ClearCase y una para ClearQuest) para iniciar y controlar procesos del servidor de fondo que se comunican con los productos principales de ClearCase y ClearQuest. Los procesos ONCRPC de fondo (procesos ccrpc para ClearCase y procesos cqrpc para ClearQuest) sirven de puente al espacio entre los componentes de J2EE y Websphere de CM Server y los componentes principales de ClearCase y ClearQuest.

CM Server ejecuta un número de tareas de fondo para ayudar a gestionar y controlar todo el ciclo de vida de cada proceso de servidor ONCRPC de fondo iniciado; no es necesaria ninguna intervención del administrador para permitir que estas tareas se ejecuten.

Existe una tarea de ciclo de vida genérica que realiza gestión de ciclos de vida no específicos del producto y tareas específicas del producto que controlan los comportamientos de los objetos del servidor de fondo de ClearCase y ClearQuest. Cada tarea utiliza atributos de los MBeans configurables como ayuda para regir el número y la longevidad de los objetos activos del servidor a fin de ayudar a mantener la capacidad del sistema para mantener el nivel con la carga de trabajo e impedir una degradación del rendimiento debido a un consumo excesivo de recursos. Consulte el apartado Establecimiento de los atributos de MBeans disponibles para obtener información sobre los atributos de los MBeans y sobre cómo configurarlos.

Gestión de ciclos de vida de la fábrica de conexiones gestionadas genérica

La tarea de gestión de ciclos de vida genérica afecta a todos los procesos ONCRPC de fondo creados por las fábricas de conexiones. Esta tarea se inicia desde CM Server cuando se inicia inicialmente CM Server. La tarea se ejecuta cada dos minutos y es responsable de probar cada servidor ONCRPC de fondo para garantizar que cada proceso de fondo de servidor todavía funciona normalmente y para limpiar los restos de los procesos de servidor que se han terminado.

Cada vez que se ejecuta la tarea, obtiene una lista de descriptores de contexto a los objetos de servidor de fondo iniciados por CM Server marcados como EN EJECUCIÓN. Cada objeto de servidor de fondo se prueba para garantizar que un proceso de fondo en funcionamiento está en ejecución. Para cada proceso de fondo que se detecte que funciona incorrectamente, se inicia la limpieza del objeto de servidor de la forma siguiente (los mensajes de registro registran los sucesos de este tipo):
  • El objeto de servidor se marca como no funcional de forma que no se proporcione ningún trabajo nuevo a ese servidor.
  • Se pone en cola una notificación de limpieza del MBean y transcurridos cinco segundos se recibe la notificación de forma asíncrona y se realiza todo el trabajo de limpieza en el objeto de servidor que funciona incorrectamente.
  • El objeto de servidor se elimina de la lista de objetos de servidor de la fábrica de conexión gestionada padre.
  • Se anula el registro del MBean asociado con ese servidor.

A continuación, la tarea obtiene una lista actualizada de los servidores con estado DETENIÉNDOSE (los servidores desocupados se marcan de esta forma). Para cada objeto de servidor que ha estado en el estado DETENIÉNDOSE durante como mínimo 30 segundos, se comprueba el proceso de fondo del objeto de servidor para comprobar que el proceso se ha detenido realmente. Si el proceso del objeto de servidor no se ha detenido, se fuerza la detención y eliminación del proceso de la lista de servidores de la fábrica. Los servidores que no han estado DETENIÉNDOSE durante como mínimo 30 segundos se dejan en la lista de servidores de la fábrica y se comprueban la próxima vez que se ejecuta la tarea.

Tareas de gestión de ciclos de vida de la fábrica de conexiones gestionadas específicas del producto

Además de la tarea de gestión de ciclos de vida genérica, una tarea independiente de ClearCase y una tarea independiente de ClearQuest controlan la gestión de ciclos de vida específica del producto de sus respectivos procesos de servidor de fondo.

El servidor oncrpc de fondo de ClearQuest (denominado proceso cqrpc) es un proceso de varias hebras; normalmente hay un número pequeño de procesos cqrpc en ejecución en un momento determinado. El servidor oncrp de fondo de ClearCase (denominado proceso ccrpc) es un proceso de una sola hebra; normalmente hay varios de estos procesos en ejecución en cualquier momento determinado. Las fábricas de conexiones gestionadas específicas del producto utilizan atributos de MBeans configurables como ayuda para regir el número y la longevidad de los procesos activos a fin de ayudar a mantener la capacidad del sistema de mantener el nivel de la carga de trabajo al mismo tiempo que se impide una degradación del rendimiento debido a un consumo excesivo de recursos.

Gestión de ciclos de vida de la fábrica de conexiones gestionadas de ClearCase

Existen algunos atributos de MBeans clave que se utilizan para regir el número de procesos ccrpc que se deben habilitar; es posible que sea necesario modificar los valores predeterminados de estos parámetros en función del tipo de sistema en el que esté instalado CM Server así como el uso previsto del servidor en función de la carga y la capacidad:
  • El atributo de MBeans CcServerFactoryMBean.serverThresholdCount es el número de umbral de servidores CCRPC que una vez que se alcance desencadenará la gestión de ciclos de vida en línea en la fábrica de conexiones gestionadas de ClearCase.
  • El atributo de MBeans CcServerFactoryMBean.maxServerCount es el número máximo de servidores CCRPC que se pueden crear en la fábrica de conexiones gestionadas de ClearCase al mismo tiempo.
  • El atributo de MBeans CcServerFactoryMBean.maxServersPerCredential limita que las aplicaciones cliente creen demasiadas hebras por sesión única de usuario.

Estos valores se pueden ajustar utilizando el programa de utilidad de la línea de mandatos wsadmin. Consulte el apartado Establecimiento de los atributos de MBeans disponibles para obtener información sobre los atributos de los MBeans y sobre cómo configurarlos. Parámetros como por ejemplo el tamaño de memoria, la velocidad del procesador y otros atributos del sistema rigen cómo se deben establecer estos y otros valores de CcServerFactoryMBean.

Cuando una solicitud de ClearCase llega a CM Server desde un cliente, se realiza un intento de obtener un objeto de servidor de fondo para procesar la solicitud. Para cada solicitud que llega, se realizan las siguientes comprobaciones en línea:
  • Se comprueba en la lista de objetos de servidor de ClearCase si hay un servidor no ocupado para procesar la solicitud. Un objeto de servidor se considera ocupado si ya está en medio del proceso de otra solicitud. Si un objeto de servidor existente no está ocupado y coincide con las credenciales de la solicitud, ese objeto de servidor proporciona servicio a la solicitud.
  • Si no hay objetos de servidor existentes que coincidan con las credenciales o bien los objetos de servidor existentes están ocupados, es necesario crear un nuevo objeto de servidor y asociarlo a la solicitud; esto se puede hacer sólo si la fábrica de conexiones gestionadas tiene la capacidad, de la forma siguiente:
    • Si se ha alcanzado el número de CcServerFactoryMBean.maxServersPerCredential de servidores ccrpc o el número de CcServerFactoryMBean.maxServerCount de servidores ccrpc, la hebra de trabajo asignada para procesar la solicitud de cliente entra en un bucle de espera-y-reintento; se realizarán hasta TeamServerMBean.maxProcureServerAttempts intentos durante un total de TeamServerMBean.procureServerInterval segundos para adquirir un servidor.
    • Si no se puede adquirir el servidor, se rechazará la solicitud de cliente. (De lo contrario, se creará un nuevo objeto de servidor y se asignará a la solicitud).

Además de las comprobaciones en línea anteriores que se realizan cada vez que llega una solicitud, una tarea de gestión de ciclos de vida específica de ClearCase de fondo realiza la subtarea siguiente:

Cada dos minutos se crea una lista de todos los servidores ccrpc que han estado desocupados durante CcServerFactoryMBean.idleServerInterval segundos o más y cada servidor de esta lista se detiene con un periodo de gracia de la forma siguiente:
  • La instancia de servidor se coloca en estado DETENIÉNDOSE de forma que no se proporcione al servidor ningún trabajo nuevo.
  • Se pone en cola una notificación TERMINATE del MBean y transcurridos cinco segundos la notificación se recibe de forma asíncrona y se realiza toda la limpieza del objeto de servidor.
  • Se envía un mensaje RPC de conclusión al proceso de servidor ccrpc y la instancia de servidor se establece en el estado DETENIDO.
  • Se registra y se guarda la hora actual en la instancia de servidor de forma que la tarea CheckServer genérica sepa cuánto tiempo el servidor ha estado en el estado DETENIDO.
  • La instancia de objeto de servidor se elimina de la lista de servidores de la fábrica de conexiones.
  • Se anula el registro del MBean asociado con ese servidor.

Gestión de ciclos de vida de la fábrica de conexiones gestionadas de ClearQuest

La gestión de ciclos de vida de ClearQuest consta de una tarea de fondo que se ejecuta cada dos minutos, así como de algunas comprobaciones en primer plano por cada solicitud de cliente que se realizan cuando se procesan las solicitudes. Las comprobaciones se realizan para determinar si se ha alcanzado algún límite de recurso crítico:
  • Si el reciclaje basado en el tiempo está habilitado (es decir, si CqServerFactoryMBean.recycleServerLifetimeLimit es mayor que cero y se ha estado ejecutando un objeto de servidor cqrpc durante como mínimo esa cantidad de tiempo), el objeto de servidor cqrpc está marcado como preparado para el reciclaje.
  • Cuando una solicitud de cliente ha finalizado, se realiza una comprobación para determinar si el objeto de servidor cqrpc ha procesado como mínimo CqServerFactoryMBean.recycleServerOncrpcCallLimit llamadas de RPC. Si es así, el objeto de servidor cqrpc está marcado como preparado para reciclar.
  • Cuando llega una solicitud de cliente y aumenta el número de sesiones, se realiza una comprobación para determinar si el objeto de servidor cqrpc ha creado como mínimo CqServerFactoryMBean.recycleServerHttpSessionLimit sesiones HTTP. Si es así, el objeto de servidor cqrpc se marca como preparado para reciclar; en este caso, se inicia un objeto de servidor cqrpc para manejar la solicitud entrante.

La fábrica de conexiones gestionadas de ClearQuest recicla objetos de servidor cqrpc en lugar de terminarlos (como realiza la fábrica de conexiones gestionadas de ClearCase para objetos de servidor ccrpc que han dejado de ser necesarios). La razón de esto es que los objetos de servidor cqrpc pueden contener elementos como consultas o registros que aún se tienen que confirmar; por lo tanto, se permite un periodo de gracia para cualquier trabajo pendiente que se deba confirmar.

El reciclaje de un objeto de servidor cqrpc consta de:
  • El objeto de servidor se coloca en estado DETENIÉNDOSE (también denominado estado RECICLANDO) de forma que no se proporcione al servidor ningún trabajo nuevo.
  • Se pone en cola una notificación RECYCLE del MBean. La notificación se recibe de forma asíncrona transcurridos cinco segundos; las sesiones de sólo lectura (READ-ONLY) asociadas con el objeto de servidor se marcan para volverse a asociar con un nuevo objeto de servidor cuando llegue la siguiente solicitud de esa sesión.

    A las sesiones que están en medio de una transacción de lectura/escritura (READ-WRITE) (es decir, una transacción que implica la confirmación de una consulta o un registro) se permite hasta CqServerFactoryMBean.recyclingPeriod segundos para que el trabajo pendiente se confirme. Una vez que se ha confirmado el trabajo o que se ha alcanzado el CqServerFactoryMBean.recyclingPeriod, el objeto de servidor se coloca en el estado DETENIDO, su proceso de fondo se termina y el objeto de servidor se elimina de la lista de servidores de la fábrica de conexiones gestionadas de ClearQuest.


Comentarios