Dans un environnement inclus dans un cluster, une mise à niveau non simultanée redéploie une application avec une perte minimale de service et de sessions. Une session est un artefact qui peut être répliqué, par exemple :
HttpSession
SingleSignOn
ServletTimer
DialogFragment
Bean Session avec conservation de statut
Vous pouvez utiliser l'équilibreur de charge et plusieurs clusters pour mettre à niveau des composants dans GlassFish Server sans aucune perte de service. Un composant peut être, par exemple, une JVM, le logiciel GlassFish Server ou une application Web.
Une mise à niveau non simultanée peut avoir lieu à des charges faibles ou modérées. La procédure nécessite environ 10 à 15 minutes pour chaque instance de GlassFish Server.
Les applications doivent être compatibles sur l'ensemble de la mise à niveau. Elles doivent fonctionner correctement lors de la transition lorsque certaines instances exécutent l'ancienne version et d'autres exécutent la nouvelle. L'ancienne et la nouvelle version doivent avoir la même forme de classes sérialisables qui constituent les graphiques d'objet stockés dans des sessions (par exemple, variables d'instance persistantes). Si la forme de ces classes doit changer, le développeur d'applications doit s'assurer que le comportement de sérialisation approprié se produit. Si l'application n'est pas compatible sur l'ensemble de la mise à niveau, le cluster doit être arrêté en vue d'un redéploiement complet.
Cette approche n'est pas applicable si la mise à niveau de l'application implique une modification du schéma de base de données de l'application.
Attention:
Pour éviter tout risque d'incompatibilité de version lors du basculement d'une session en cas d'incident, mettez à niveau toutes les instances d'un cluster en même temps. Sinon, une session peut basculer vers une instance sur laquelle d'autres versions des composants sont en cours d'exécution.Exécutez cette tâche sur chaque cluster séparément. Un cluster fonctionne comme une limite de sécurité pour le basculement des sessions en cas d'incident pour les instances dans le cluster. Les sessions dans un cluster ne peuvent jamais basculer sur les sessions dans un autre cluster. Ceci évite le risque d'incompatibilité de version.
Arrêtez le cluster.
Reportez-vous à Arrêter un cluster.
Mettez à niveau le composant dans ce cluster.
Démarrez le cluster.
Reportez-vous à Démarrer un cluster.