J'ai écrit un script bash pour déployer automatiquement une application Web sur le conteneur Tomcat chaque fois qu'il est déclenché. Il est assez simple:Echec du démarrage automatique de tomcat par les scripts bash
- Dump la base de données en cours pour la sauvegarde
- Arrêter le processus tomcat actuel
- Supprimer le dossier application web
- Remplacez le fichier de guerre avec le nouveau
- Démarrer à nouveau Tomcat
Cependant, maintenant je veux avoir un repli. S'il y a un problème dans le processus de démarrage, la base de données sera restaurée et l'ancien fichier war sera à nouveau déployé.
Mon problème est que je ne sais pas quand une application Web n'a pas pu démarrer. Une de mes implémentations est que je vais vérifier la taille du fichier de journalisation de mon application web, si après un certain temps ça n'augmente pas (ce qui signifie qu'il n'y a rien d'écrit), alors le système devrait comprendre que le déploiement échoue et nous devrions restaurez l'ancienne application Web. Cependant, c'est un peu sale et je ne suis pas sûr de ce qui se passera si mon fichier de journalisation est lancé à ce moment-là.
Tomcat dispose-t-il d'un mécanisme permettant de prendre en charge la détection de démarrage échoué d'une application Web?
Vérifiez http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html#List_Currently_Deployed_Applications – home
@home: merci de votre intérêt, mais je veux vérifier le succès du déploiement dans le contexte de la machine serveur, pas via un accès web. Yat-il un moyen de récupérer la même information sur le contexte du serveur, ou j'ai vraiment besoin de faire curl pour l'obtenir? –
AFAIK, le serveur (matériel OS +) ne connait pas l'état de l'application car votre application est 'juste' une partie de l'instance JVM exécutant Tomcat ainsi que votre application (un seul processus Java). Une autre approche consiste à implémenter une sorte de servlet 'probe' dans votre application. Cela vous permet de tester plus que l'état technique "en vie" (par exemple, disponibilité de la base de données). – home