Mi situación es así:apagado de Tomcat MUY lento después de llamar a shutdown.sh?
Cada vez antes de cargar el archivo war a la carpeta de la aplicación web, dejo Tomcat llamando al sh shutdown.sh
. Solía tomar unos 30 segundos para un apagado total. Pero ahora ya no funciona bien.
En realidad, funcionó un poco, porque cuando accedo a la aplicación desde la página web arroja el error 503 (Bajo Mantenimiento). Pero cuando uso ps aux | grep tomcat
para verificar, el proceso de tomcat aún está allí. Y estará allí por alrededor de 5 a 10 minutos.
Entiendo que puede necesitar tomar más tiempo para completar todas las tareas, pero es demasiado lento (5-10 minutos) antes de que se detenga por completo. No entiendo por qué sucede esto, pero debe haber alguna razón. Quizás haya algo que ver con el código o con el nuevo script de implementación que utilizamos recientemente. Simplemente no tengo ni idea de dónde comprobarlo.
Esto es importante para nuestro equipo porque estamos utilizando el "despliegue automático", en el cual usamos un script para autoensamblar el archivo war, cargarlo e implementarlo en un momento específico. Si iniciamos una nueva instancia de tomcat antes de que el anterior se cierre con éxito, se quedará allí para siempre, y limpiar la tarea con "kill -9" es desalentador.
¿Hay alguien que haya experimentado este problema? Cualquier pista sería apreciada.
Q: ¿Cuál es la última cosa en el registro cuando lleva esta 5-10 minutos? TAMBIÉN: ¿"ps -eaf" le da alguna pista (o simplemente ve un proceso de Java con cero utilización de la CPU)? ¿Cuál es tu versión de Tomcat? Su sistema operativo? TAMBIÉN: si identifica un proceso "java" "colgado" en "ps", debe obtener un seguimiento de pila: http://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F – paulsm4
@ paulsm4: Mirando el registro , Veo que incluso después de llamar a shutdown.sh, mis trabajos de Quartz aún se ejecutan. Después de un tiempo, se descarta un error: SEVERE: La aplicación web [/ project] parece haber iniciado un hilo llamado [Resource Destroyer in BasicResourcePool.close()] pero no ha podido detenerlo. Esto es muy probable que cree una pérdida de memoria. –
@ paulsm4: por cierto, tengo el trabajo de cuarzo aproximadamente 10 segundos por vez. ¿Esto puede ser un problema? –