martes, 10 de abril de 2012

TOMCAT : bin | JAVA : java.lang.OutOfMemoryError: Java heap space

Siguiendo con el Tema de TOMCAT, y después de 
haber instalado el TOMCAT post anterior,
lo que ire detallando post a post es la importancia de algunos archivos y la configuración de estos; esto para, un mejor desempeño de nuestro servidor de aplicaciones.
La realidad es que no se a la fecha 
el funcionamiento al 100% de todos y cada uno de los archivos que contiene el TOMCAT, pero lo que si se y he
aprendido día con día es lo que manifiesto en estas entradas, y en lo personal con eso es suficiente para 
tener un TOMCAT estable.

PROBLEMA:
 Mi TOMCAT no soporta mas de "n" conexiones se traba, no responde, etc. Una cosa es la mala programación
 y otra es que no nos metamos en archivos de configuración, en lo personal la Shell Programming, era algo que 
 siempre me causaba ruido, y simplemente veia las cosas como una caja negra y punto, me funcionaba y para que 
 quería meterme en esas tripas. Obviamente la cantidad de usuarios finales, el número de conexiones simultaneas
 son cosas con las que uno tiene que lidiar día con día.

NOTA Windows xp / windows 7:
 Apache TOMCAT viene configurado por default para tomar los siguientes valores
 --JvmMs 128 --JvmMx 256 (Línea 128)
 Esto es en el archivo service.bat ubicado en la carpeta bin del apache-tomcat; donde literalmente esta
 destinando hasta 256 Mb. de memoria RAM para el TOMCAT
 
NOTA Linux(Centos):
 Aquí, como estamos en GNU/Linux tenemos que editar a mano el archivo catalina.sh con las siguientes lineas:
 
#!/bin/sh
JRE_HOME="/usr/local/jdk1.6.0_30/jre"
JAVA_OPTS=" -server "
export JAVA_OPTS
CATALINA_OPTS="-Xmn256M -Xms512M -Xmx1024M -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:MaxPermSize=128m"


SOLUCIÓN

 Windows
  Modificar los siguientes datos en el archivo service.bat:
  --JvmMs 128 --JvmMx 256 (Línea 128) Por Default
  Otros valores para ir probando
  --JvmMs 256 --JvmMx 512
  --JvmMs 512 --JvmMx 768
  --JvmMs 768 --JvmMx 1024
 
  Si lo notan son valores incrementados a razón de 256 siempre siendo multiplos de 2^n
  
 Linux
  Modificar los siguientes datos en el archivo catalina.sh:
  CATALINA_OPTS="-Xmn256M -Xms512M -Xmx1024M -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:MaxPermSize=128m"
  
  
Aquí ya sólo resta que hagan pruebas y visualicen en el tomcat manager