Tomcat Parallel Deployment, annule automatiquement le déploiement des anciennes applications

10

J'utilise le déploiement parallèle de Tomcat 8 dans le cadre d'une configuration de déploiement continu sans interruption depuis un certain temps maintenant.

Lorsque le gant de test a été exécuté, le serveur CI renomme automatiquement le fichier .war en application ## {numéro de version} .war et copie la guerre dans le dossier / webapp. l'application ## 333 coexistera bien avec l'application ## 332.

Le seul problème que je rencontre est que je dois annuler manuellement le déploiement des anciennes applications une fois que tout le trafic (nouvelles sessions) est automatiquement passé à la nouvelle.

Tomcat a-t-il un mécanisme intégré pour dire "hé, quand ce service descend à zéro session, il devrait être supprimé"? Peut-être une sorte d'événement "la dernière session vient de se terminer" que je peux exploiter.

Si quelqu'un d'autre a automatisé ce type de retrait d'application, j'aimerais en entendre parler. Merci!

Martin Cron
la source

Réponses:

9

Vous pouvez configurer Tomcat pour supprimer les anciennes applications. Vous devez ajouter l' undeployOldVersionsattribut à l' Hostélément et le définir sur true. Vous devrez modifier votre hôte dans server.xml en quelque chose comme ceci:

<Host undeployOldVersions="true" ...>
   ...
</Host>

Consultez la documentation de l' hôte pour plus de détails. En particulier, cela ne fonctionne que lorsque le déploiement automatique est activé.

Mark Thomas
la source
Sous quelle version de Tomcat utilisez-vous? J'ai Tomcat 8.5.6 et cela ne fonctionne pas. J'ai activé FarmWarDeployer et les nouvelles versions sont automatiquement déployées. Cependant, après avoir activé undeployOldVersions sur la balise Host, les anciens fichiers de guerre (et déploiements) ne sont pas supprimés.
Piko
Des progrès à ce sujet avec Tomcat 8?
JimmyD
1
La fonctionnalité est implémentée pour Tomcat 8. Si vous rencontrez des problèmes lors de l'utilisation de FarmWarDeployer, ouvrez un bogue, avec des étapes de reproduction, afin qu'il soit examiné.
Mark Thomas