Pourquoi et quand exécuter cette tâche
Sans l'activation d'OSGi, si un administrateur doit mettre à jour les plug-in d'application ou les objets cache, chaque noeud de grille doit être mis à jour un par un, ce qui affecte le réseau, la mémoire et l'utilisation du processeur. Cette opération est nécessaire, car les plug-in et les objets Java cache sont directement stockés dans la grille. Lorsque les classes sont mises à jour sans redémarrer les processus, les plug-in de grille génèrent des conflits, car chaque classe un chargeur ClassLoader différent.
Le produit eXtreme Scale contient l'utilitaire xscmd et des beans gérés qui permettent aux administrateurs d'afficher tous les ensembles de plug-in installés dans l'infrastructure OSGi d'hébergement de chaque conteneur de la grille et de choisir la révision à utiliser. Lorsque vous utilisez l'utilitaire
xscmd pour mettre à jour les plug-in vers un nouveau classement, la grille est mise au repos et toutes les transactions sont arrêtées, les plug-in sont mis à jour et la grille est réactivée. En cas d'erreur lors de la mise à jour, le processus est annulé et l'ancien classement est restauré.
- Créez une version de l'ensemble en augmentant le numéro de version dans le manifeste de l'ensemble et le classement de chaque service de plug-in eXtreme Scale. Si la version de l'ensemble d'origine est Bundle-Version: 1.0.0, la version suivante peut être Bundle-Version: 1.1.0.
Si le classement de service d'origine est ranking="1", le classement suivant peut être ranking="2".
Important : Les classements de service OSGi doivent être des entiers.
- Copiez le nouvel ensemble vers chaque noeud de l'infrastructure OSGi qui héberge un serveur de conteneur eXtreme Scale.
- Installez le nouvel ensemble dans l'infrastructure OSGi. L'ensemble est affecté d'un identificateur, par exemple :
osgi> install <URL to bundle>
- Démarrez le nouvel ensemble en utilisant l'identificateur affecté, par exemple :
osgi> start <id>
Une fois le nouvel ensemble démarré, le programme de suivi de service OSGi eXtreme Scale détecte l'ensemble et le rend disponible pour la mise à jour.
- Utilisez la commande xscmd -c osgiAll pour vérifier que chaque serveur de conteneur voit le nouvel ensemble. La commande osgiAll interroge tous les conteneurs dans la grille pour tous les services qui sont référencés dans le fichier XML descripteur ObjectGrid et affiche tous les classements disponibles, par exemple :
xscmd -c osgiAll
Server: server1
OSGi Service Name Available Rankings
----------------- ------------------
myLoaderServiceFactory 1, 2
mySerializerServiceFactory 1, 2
Server: server2
OSGi Service Name Available Rankings
----------------- ------------------
myLoaderServiceFactory 1, 2
mySerializerServiceFactory 1, 2
Summary - All servers have the same service rankings.
- Utilisez la commande xscmd -c osgiCheck pour vérifier qu'un ou plusieurs classements de service sont des cibles de mise à jour valides. Par exemple :
xscmd -c osgiCheck -sr
mySerializerServiceFactory;2,myLoaderServiceFactory;2
CWXSI0040I: The command osgiCheck has completed successfully.
- Si la commande osgiCheck ne trouve pas des erreurs résultantes, suspendez l'équilibreur du service de placement pour éviter les mouvements de fragments en cas d'erreur lors de la mise à jour. Pour suspendre le placement, utilisez la commande xscmd -c suspendBalancing pour chaque grille d'objets et chaque groupe de mappes affectés par la mise à jour, par exemple :
xscmd -c suspendBalancing -g MyGrid -ms MyMapSet
- Lorsque l'équilibrage a été suspendu pour chaque grille d'objets et groupe de mappes, utilisez la commande xscmd -c osgiCheck de nouveau pour vérifier qu'un ou plusieurs classements de service sont des cibles de mise à jour valides. Par exemple :
xscmd -c osgiCheck -sr
mySerializerServiceFactory;2,myLoaderServiceFactory;2
CWXSI0040I: The command osgiCheck has completed successfully.
- Lorsque l'équilibrage a été suspendu pour chaque grille d'objets et groupe de mappes, utilisez la commande osgiUpdate pour mettre à jour le service sur tous les serveurs pour une grille d'objets et un groupe de mappes. Par exemple :
xscmd -c osgiUpdate -sr
mySerializerServiceFactory;2,myLoaderServiceFactory;2 -g MyGrid -ms MyMapSet
- Vérifiez que la mise à niveau a abouti. Par exemple :
La mise à jour abouti pour les classements de services suivants :
Service Ranking
------- -------
mySerializerServiceFactory 2
myLoaderServiceFactory 2
- Après avoir vérifié que le classement a été mis à jour, activez de nouveau l'équilibrage en utilisant la commande xscmd -c resumeBalancing. Par exemple, :
xscmd -c resumeBalancing -g MyGrid -ms MyMapSet
- Arrêtez et désinstallez l'ancien ensemble dans chaque infrastructure OSGi qui héberge le conteneur eXtreme Scale. Par exemple, entrez le code suivant dans la console Eclipse Equinox :
osgi> stop <id>
osgi> uninstall <id>