Servidor Tomcat - Mejoramiento

Imagen de edsxn

Forums: 

Buenos Dias Señores

Les comento que tengo encomendado revisar un servidor Tomcat/Apache , algo nuevo para mi acostumbrado solo ver Apache y IIS servers el cual motivo desconocido me han indicado que tiene que ser reiniciado el servicio JAVA todo los dias a media noche.

Buscando informacion en la Web , veo detalle tecnicos para mejorar dentro del panel de administracion de Tomcat .

Pero queria saber por sus experiencias si tiene alguna consideracion que tomar


# Tomcat Application Server - Restart

0 0 * * * kill -kill `/sbin/pidof -x java`; sleep 4; /etc/init.d/tomcat start;

Sobre este server esta corriendo una aplicacion llamada Microstrategy para busines inteligance. la distribucion es REd hat 5.

Gracias por su ayudita.

agrego esto

Imagen de edsxn

buen dia señores

Solo para agregar que verificando dentro del status del tomcat , recibo la siguiente respuesta el cual me llama mucho la atencion.


[root@bi2 log]# /etc/init.d/tomcat status
tomcat dead but subsys locked

Linux Rules

pues creo que deberías usar

Imagen de deathUser

pues creo que deberías usar el /etc/init.d/tomcat para parar el servicio, mirar si ha bajado en realidad (ps por ejemplo) y levantarlo nuevamente ...

algo como:


/etc/init.d/tomcat stop
/root/bin/script_para_validar_que_se_haya_parado_el_servicio
/etc/init.d/tomcat start

En realidad el script te arroja normalmente un estado de ejecución, lo que se puede usar para determinar si paró e inicio adecuadamente, el mensaje de:
[quote]tomcat dead but subsys locked[/quote]
Es seguramente por que mataste los procesos, pero el archivo .lock que suelen crear los archivos de inicialización no ha sido borrado ;)

bye
;)

Epe

Imagen de edsxn

Entonces esos archivos .lock debo yo mismo borrarlos del proceso . oh eso verificarlo en el bash que lo inicia. Gracias por tu respuesta amigo EPE

Linux Rules

Bueno, aunque se lo preguntes

Imagen de deathUser

Bueno, aunque se lo preguntes a EPE, te lo contesto yo, si usas el script /etc/init.d/tomcat, este se encarga de la creación y borrado de los archivo .lock, en caso de que mates los procesos a mano (kill -9 o similares), tendrás tú que controlar el borrado de los archivos .lock ya que no se borran automáticamente ...

La recomendación suele ser, usa los scripts distribuidos con el software que estás intentando controlar, ya que suelen hacer algunos "sanity checks" para no dejar el software en un estado no deseado, especialmente importante en aplicaciones que escriben datos a disco, commo bases de datos por ejemplo ...

bye
;)

Disculpa deathuser

Imagen de edsxn

Hola DeathUser

Me confundi nombrando al colega Epe , sorry se me paso la mano.

Ahora segun vuestas indicaciones acabo de darle stop al servicio tomcat y nuevamente iniciarlo y a pesar de eso. El pid locked se mantiene.

Creo que me vere forzado a matar el pid manualmente, digame amigo DeathUser, algo que corregir dentro del script


#!/bin/sh
#
# Startup script for the Jakarta Tomcat Java Servlets and JSP server
#
# chkconfig: - 85 15
# description: Jakarta Tomcat Java Servlets and JSP server
# processname: tomcat

# pidfile: /var/run/tomcat.pid
# config:

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Set Tomcat environment.
export JAVA_HOME=/usr/java/default
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_OPTS="-server -Xms64m -Xmx512m -Dbuild.compiler.emacs=true"
export PATH=$JAVA_HOME/bin:$PATH

[ -f /usr/local/tomcat/bin/startup.sh ] || exit 0
[ -f /usr/local/tomcat/bin/shutdown.sh ] || exit 0

export PATH=$PATH:/usr/bin:/usr/local/bin

# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n "Starting Tomcat: "
/usr/local/tomcat/bin/startup.sh
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_OPTS="-server -Xms64m -Xmx512m -Dbuild.compiler.emacs=true"
export PATH=$JAVA_HOME/bin:$PATH

[ -f /usr/local/tomcat/bin/startup.sh ] || exit 0
[ -f /usr/local/tomcat/bin/shutdown.sh ] || exit 0

export PATH=$PATH:/usr/bin:/usr/local/bin

# See how we were called.
case "$1" in
start)
# Start daemon.
24,1 42%
# Set Tomcat environment.
export JAVA_HOME=/usr/java/default
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_OPTS="-server -Xms64m -Xmx512m -Dbuild.compiler.emacs=true"
export PATH=$JAVA_HOME/bin:$PATH

[ -f /usr/local/tomcat/bin/startup.sh ] || exit 0
[ -f /usr/local/tomcat/bin/shutdown.sh ] || exit 0

export PATH=$PATH:/usr/bin:/usr/local/bin

# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n "Starting Tomcat: "
/usr/local/tomcat/bin/startup.sh
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
;;
stop)
# Stop daemons.
echo -n "Shutting down Tomcat: "
/usr/local/tomcat/bin/shutdown.sh
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
;;
restart)
$0 stop
$0 start
;;
condrestart)
[ -e /var/lock/subsys/tomcat ] && $0 restart
;;
status)
status tomcat
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac

exit 0

Linux Rules

el script luce bien, solo que

Imagen de deathUser

el script luce bien, solo que creo que se te pegó como tres veces :D a ver si lo limpias ...

no veo que se manipule el pidfile: /var/run/tomcat.pid en ninguna parte del scrip, seguramente lo manipula el script startup.sh de tomcat mírale a ese a ver que onda ...

bye
;)

Coincido con ustedes

Imagen de edsxn

Gente disculpen si estoy haciendo posiblemente un offtopic pero hoy encontre algo interesante en los logs del TOMCAT


Dec 28, 2011 4:09:21 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_21/jre/lib/amd64/server:/usr/java/jdk1.6.0_21/jre/lib/amd64:/usr/java/jdk1.6.0_21/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

No logro interpretar muy bien este logs pero no se si su solucion sea cambiando algunos parametros que optimizen la libreria nativa de tomcat ..

Gracias

Linux Rules

Sabes que a que se refiere

Imagen de deathUser

Sabes que a que se refiere cuando en java dicen "native" ...???

http://es.wikipedia.org/wiki/Java_Native_Interface

para hacerlo corto, permite ejecutar programas escritos en otro lenguaje, típicamente C, C++, Ensamblador, o cualquier otra cosa que interactúe directamente con el sistema operativo, en el caso particular que mencionas, se trata de compilar las librerías nativas de tomcat (un paquete escrito en c++ si no me equivoco) con la finalidad de que estas llamadas se ejecuten más eficientemente ...

Busca en la documentación de Tomcat al respecto.

bye
;)

Hola

Imagen de carlosjulioperez

Creo que aún queda un servicio java relacionado.

Prueba con esto, que haciendo uso del grep, elimina todos los procesos relacionados con java.


kill -KILL `ps -e | grep java | awk '{print $1}'`

Saludos cordiales

Carlos Julio Pérez Quizhpe
Full stack developer
https://ec.linkedin.com/in/carlosjulioperez