Gestion du cycle de vie de la fabrique de connexions gérées de CM Server

La présente rubrique décrit les tâches de la gestion du cycle de vie de CM Server.

CM Server utilise deux fabriques de connexion gérées J2C (une pour ClearCase et une autre pour ClearQuest) pour lancer et contrôler les processus du serveur dorsal qui communique avec les produits de base ClearCase et ClearQuest. Les processus ONCRPC dorsaux (ccrpc pour ClearCase et cqrpc pour ClearQuest) font le lien entre le composants J2EE et Websphere de CM Server et les composants centraux de ClearCase et ClearQuest.

Les tâches en arrière-plan que CM Server exécute assurent la gestion et le contrôle du cycle de vie complet de chaque processus du serveur ONCRPC dorsal ; ces tâches s'exécutent sans intervention de l'administrateur.

Une tâche générique de cycle de vie est dédiée à la gestion de cycle de vie générique, et diverses tâches spécifiques assurent le contrôle des comportements des objets des serveurs dorsaux ClearCase et ClearQuest. Chaque tâche exploite les attributs MBean configurables pour contrôler le nombre et la longévité des objets des serveurs actifs et permettre au système d'absorber la charge, et ainsi éviter une dégradation des performances entraînée par une consommation excessive des ressources. Pour plus d'informations sur les attributs MBean et leur paramétrage, voir Définition des attributs MBean disponibles.

Gestion du cycle de vie générique de la fabrique de connexions gérées

La tâche de gestion du cycle de vie générique concerne tous les processus ONCRPC dorsaux créés par les fabriques de connexions. Cette tâche est lancée depuis CM Server, lors de son démarrage initial. Elle s'exécute toutes les deux minutes et se charge de tester chaque serveur ONCRPC dorsal pour vérifier que chaque processus du serveur dorsal fonctionne normalement et pour nettoyer toute trace des processus arrêtés.

A chaque fois que la tâche s'exécute, il obtient une liste d'indicateurs pointant vers les objets du serveur dorsal lancés par CM Server à l'état RUNNING. Chaque objet du serveur dorsal est testé pour vérifier qu'un processus dorsal fonctionnant normalement est en cours d'exécution. A fois qu'un processus dorsal présente des signes de dysfonctionnement, le nettoyage de l'objet serveur se déroule comme suit (les messages relatifs à ces événements sont enregistrés) :
  • L'objet serveur est marqué comme étant "non fonctionnel" pour empêcher tout nouvel envoi de travail vers ce serveur.
  • Une notification de nettoyage de MBean est mise en file d'attente et reçue par mécanisme asynchrone dans les cinq secondes suivant la notification, entraînant le nettoyage de l'objet serveur en dysfonctionnement.
  • L'objet serveur est supprimé de la liste des objets serveur de la fabrique de connexions gérées parent
  • L'enregistrement du MBean associé au serveur est supprimé.

Ensuite, la tâche reçoit une liste mise à jour des serveurs à l'état STOPPING (les serveurs inactifs sont marqués à cet état). Pour chaque objet serveur à l'état STOPPING depuis plus de 30 secondes, le processus dorsal de l'objet serveur est vérifié pour s'assurer que le processus a bien été stoppé. Si le processus de l'objet serveur n'a pas été stoppé, son arrêt forcé est demandé et il est supprimé de la liste des serveurs de la fabrique. Les serveurs qui n'ont pas été à l'état STOPPING depuis plus de trente secondes restent dans la liste des serveurs de la fabrique et sont vérifiés lors de l'exécution suivante de la tâche.

Tâches spécifiques de gestion du cycle de vie de la fabrique de connexions gérées

En plus de la tâche de gestion du cycle de vie générique, il existe deux tâches spécifiques, une dédiée à ClearCase et une autre à ClearQuest, qui assurent la gestion du cycle de vie de leurs processus de serveur dorsal respectifs.

Le serveur oncrpc dorsal ClearQuest (désigné sous le nom de "processus cqrpc") est un processus à unités d'exécutions multiples ; généralement, peu de processus cqrpc sont exécutés simultanément. Le serveur oncrpc dorsal ClearCase (désigné sous le nom de "processus ccrpc") est un processus à unité d'exécution unique ; généralement, de nombreux processus sont exécutés simultanément. Les fabriques de connexions gérées spécifiques aux produits exploitent les attributs MBean configurables pour contrôler le nombre et la longévité des objets des serveurs actifs et permettre au système d'absorber la charge tout en évitant une dégradation des performances entraînée par une consommation excessive des ressources.

Gestion du cycle de vie générique de la fabrique de connexions gérées ClearCase

Quelques attributs MBean clés servent à régir le nombre de processus ccrpc à activer ; il peut être nécessaire d'optimiser leur paramétrage par défaut, en fonction du type de système sur lequel CM Server est installé, ainsi que l'utilisation attendue du serveur, selon sa charge et sa capacité :
  • L'attribut MBean CcServerFactoryMBean.serverThresholdCount représente le seuil du nombre de serveurs CCRPC au-delà duquel la gestion de cycle de vie en ligne se déclenche au niveau de la fabrique de connexions gérées ClearCase.
  • L'attribut MBean CcServerFactoryMBean.maxServerCount représente le nombre maximal de serveurs CCRPC qui peuvent être créés dans une fabrique de connexions gérées ClearCase simultanément.
  • L'attribut MBean CcServerFactoryMBean.maxServersPerCredential empêche les applications client de créer trop d'unités d'exécution par session d'utilisateur unique.

Ces valeurs peuvent être modifiées à l'aide de l'utilitaire de commande en ligne wsadmin. Pour plus d'informations sur les attributs MBean et leur paramétrage, voir Définition des attributs MBean disponibles. Les paramètres tels que la taille de la mémoire, la vitesse du processeur, et d'autres attributs système définissent le paramétrage de ces valeurs et des autres valeurs CcServerFactoryMBean.

Lorsqu'une demande ClearCase parvient à CM Server depuis un client, une tentative est effectuée pour obtenir un objet serveur dorsal, afin qu'il traite la demande. Les vérifications en ligne suivantes sont effectuées à réception de chaque nouvelle requête :
  • Un serveur inactif est recherché dans la liste des objets serveur ClearCase pour assurer le traitement de la demande. Un objet serveur est considéré actif s'il traite déjà une autre demande. Si un objet serveur existe, qu'il est inactif et qu'il correspond aux autorisations d'accès de la demande, il la prend en charge.
  • Si, parmi l'ensemble des objets serveur existants, aucun ne correspond aux données d'identification ou n'est inactif, un nouvel objet serveur doit être créé et associé à la demande ; cette création n'est possible que si la fabrique de connexions gérées en a la capacité, soit :
    • Si le nombre CcServerFactoryMBean.maxServersPerCredential ou CcServerFactoryMBean.maxServerCount de serveurs ccrpc a été atteint, l'unité d'exécution de tâche assigné au traitement de la demande client entre dans une boucle itérative attente/tentative ; TeamServerMBean.maxProcureServerAttempts tentatives sont effectuées au maximum, pour un délai d'attente maximal de TeamServerMBean.procureServerInterval secondes avant l'acquisition d'un serveur.
    • Si aucun serveur ne peut être acquis, la demande du client est rejetée. (Dans le cas contraire, un nouvel objet serveur est créé et affecté à la requête.

En plus des contrôles en ligne ci-dessus, effectués à chaque réception de requête, une tâche en arrière-plan de gestion de cycle de vie spécifique à ClearCase assure la sous-tâche suivante :

Toutes les deux minute, une liste contenant tous les serveurs ccrpc inactifs depuis CcServerFactoryMBean.idleServerInterval secondes ou plus est créée, et chaque serveur de cette liste est arrêté comme suit :
  • L'instance du serveur passe à l'état STOPPING, empêchant l'envoi de tout nouveau travail vers ce serveur.
  • Une notification MBean TERMINATE est mise en file d'attente et reçue par mécanisme asynchrone dans les cinq secondes suivant la notification, entraînant le nettoyage de l'objet serveur en dysfonctionnement.
  • Un message d'arrêt RPC est envoyé au processus du serveur ccrpc et l'instance du serveur est définie à l'état STOPPED.
  • L'heure est enregistrée et sauvegardée dans l'instance du serveur, afin d'indiquer à la tâche générique CheckServer depuis quand le serveur est dans cet état.
  • L'instance de l'objet serveur est supprimée de la liste des serveurs de la fabrique de connexions gérées.
  • L'enregistrement du MBean associé au serveur est supprimé.

Gestion du cycle de vie de la fabrique de connexions gérées ClearQuest

La gestion du cycle de vie de ClearQuest consiste en une tâche en arrière-plan exécutée toutes les deux minutes et en plusieurs contrôles d'avant-plan, sur la base d'une demande par client, lancées lors du traitement des demandes. Les contrôles servent à déterminer si certaines ressources critiques ont atteint leur niveau limite :
  • Si le recyclage périodique est activé (c'est-à-dire, si la valeur du paramètre CqServerFactoryMBean.recycleServerLifetimeLimit est supérieure à zéro et qu'au moins un objet serveur est en cours d'exécution depuis le délai minimum spécifié), le serveur cqrpc est marqué comme étant prêt à effectuer le recyclage.
  • Lorsque la demande d'un client a été satisfaite, un contrôle est effectué pour déterminer si l'objet serveur cqrpc a traité un minimum de CqServerFactoryMBean.recycleServerOncrpcCallLimit appels RPC. Si c'est le cas, l'objet serveur est marqué comme étant prêt à effectuer le recyclage.
  • Lorsque la demande d'un client arrive et que le nombre de sessions est incrémenté, un contrôle est effectué pour déterminer si l'objet serveur cqrpc a créé au moins CqServerFactoryMBean.recycleServerHttpSessionLimit sessions HTTP. Si c'est le cas, l'objet serveur est marqué comme étant prêt à effectuer le recyclage ; dans ce cas, un nouvel objet serveur cqrpc est démarré et prend en charge la demande entrante.

La fabrique de connexions gérées ClearQuest recycle les objets du serveur cqrpc plutôt que de les arrêter (comme le fait la fabrique de connexions gérées ClearCase pour les objets du serveur ccrpc devenus inutiles). En effet, les objets du serveur cqrpc peuvent contenir des éléments tels que des requêtes ou des enregistrements en attente de validation ; un délai de grâce leur est donc alloué pour que les travaux en attente soient validés.

Le recyclage de l'objet d'un serveur cqrpc se déroule comme suit :
  • L'objet serveur passe à l'état STOPPING (aussi appelé état RECYCLING), empêchant l'envoi de tout nouveau travail vers ce serveur.
  • Une notification MBean RECYCLE est mise en file d'attente. La notification est reçue par mécanisme asynchrone dans la cinq secondes ; les sessions READ-ONLY associées à l'objet serveur sont marquées comme devant être assignées à un nouvel objet serveur à réception de la prochaine demande pour cette session.

    Les sessions en cours de transaction READ-WRITE (transaction impliquant la validation d'une requête ou d'un enregistrement) sont autorisées à attendre CqServerFactoryMBean.recyclingPeriod secondes au plus avant validation des travaux en attente. Une fois le travail validé ou le délai d'attente CqServerFactoryMBean.recyclingPeriod dépassé, l'objet serveur passe à l'état STOPPED, son processus dorsal est arrêté et l'objet serveur est supprimé de la liste des serveurs de la fabrique de connexions gérées ClearQuest.


Feedback