Mon équipe et je développe une application Web Java en utilisant Tomcat comme serveur de test de développement et notre fourmi comme outil de construction. Notre plate-forme est Windows, mais nous courons Tomcat hors de Cygwin car notre coquille préférée est bash. Nous avons rencontré des problèmes cohérents avec le manque de mémoire en raison des redémarrages fréquents de l'application afin de faire des fonctions nouvellement implémentées disponibles pour les tests.
Nous essayions à l'origine de recharger l'application en place sans redémarrer le serveur à l'aide du serveur à l'aide du serveur. Fourni Catalina Ant Task. Cela a travaillé pour quelques itérations, mais nous manquions toujours de l'espace Permgen. Pour être claire, cela se réfère aux tâches de fourmis regroupées avec Tomcat qui démarrent, arrêtez-vous, déploiement, de non-déploiement et énumérez l'application Notre prochaine idée était de redémarrer le serveur à chaque fois. Notre problème constant a été que l'arrêt du serveur ne semble pas tuer le processus Java. Finalement, la mémoire s'exprime simplement avec tous ces processus zombies, à moins que vous ne surveilliez et que vous les tuez manuellement. Les implémentations que j'ai essayées sont les suivantes: p> exécuter le pot de bootstrap directement . P>
<target name="tomcat.server.start" depends="tomcat.server.online" unless="tomcat.server.online">
<exec executable="bash" failonerror="true" >
<arg line="-i ../tools/tomcat/bin/startup.sh" />
</exec>
<waitfor maxwait="30" maxwaitunit="second" timeoutproperty="tomcat.offline">
<socket port="8081" server="127.0.0.1" />
</waitfor>
<fail if="tomcat.offline">Tomcat failed to come up.</fail>
</target>
3 Réponses :
Utilisez le TOMCAT TOPS . Catalina-Ant.jar est inclus dans la plupart des distributions Tomcat. Généralement, il est bon de combiner cela avec le Tâches TRY-CATCH Tâches .
-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m
Merci pour la réponse! Si vous allez regarder le deuxième paragraphe un peu plus étroitement, je pense que vous remarquerez que nous n'utilisons pas ceux à cause des problèmes spatiaux de Permgen. C'est pourquoi j'essaie d'aller à la route du serveur. Cela peut être faux, mais cette réponse ne résout pas vraiment cela.
Je vois ça, oui. Désolé pour ça, j'ai ajouté un peu des choses Perm.
Il y a des tâches Tomcat ant pour accomplir ces choses: p>
http://raibledesigns.com/wiki/wiki.jsp?page=tomcatanttasks p>
Peut-être qu'ils peuvent aider. P>
Je ne suis jamais généralement plus rapide du tirage au sort. La tâche essaie est une addition fraîche.
Merci pour la réponse! Si vous allez regarder le deuxième paragraphe un peu plus étroitement, je pense que vous remarquerez que nous n'utilisons pas ceux à cause des problèmes spatiaux de Permgen. C'est pourquoi j'essaie d'aller à la route du serveur. Cela peut être faux, mais cette réponse ne résout pas vraiment cela.
Je suggérerais de courir Tomcat en tant que service. Vous pouvez ensuite utiliser la tâche SSHEXEC.
à peine édité à partir de notre build.xml: p> le fichier restartContainer.bat appelle net stoppy% servicename%, nettoie les journaux de repère, Les fichiers temporaires, etc., puis appellent que le service de service de départ net%. P> Cela fonctionne très bien pour nous dans le développement, la mise en scène et la production. Vous avez juste besoin d'un serveur SSH installé. P> p>
TAIMERTY code> devrait être
TimeOutProperty CODE> - mais parce que cela semble ne pas indiquer votre problème - j'ai fait une édition directe à la question.