Memory Management
¿Cómo aumentar la memoria de los módulos de O3?
Aumentando memoria de módulos y servicios
Todos los módulos de O3 (O3Browser, O3Designer, JBoss, etc.) están configurados para utilizar hasta cierta cantidad máxima de memoria. En general nunca pasan de ese máximo pero cuando esto sucede las aplicaciones muestran en el log el error: java.lang.OutOfMemoryError
La solución consiste en configurar el módulo aumentándole esa cantidad de memoria máxima.
Versión 5.3 y anteriores:
La configuración es muy simple, en el caso de O3Browser alcanza con modificar el archivo de texto [o3]/bin/Browser.lax en la línea donde dice:
lax.nl.java.option.additional=-Xmx200m -Djava.library.path....
cambiando el número 200 (que corresponde a 200 Mb de memoria) por el que se considere más conveniente.
El cambio tendrá efecto la próxima vez que se inicie el módulo
Para el resto de los módulos el cambio es análogo salvo que en lugar de modificar Browser.lax se debe modificar el .lax correspondiente. Por ejemplo: para el caso de O3Designer es Designer.lax, para el caso de JBoss es JBoss.lax (modificando aquí se le está aumentando la memoria al servicio JBoss), para el caso de Builder es Builder.lax, etc.
Versión 5.4 y posteriores:
La configuración es muy simple, en el caso de O3Browser alcanza con modificar el archivo de texto [o3]/bin/Browser.vmoptions en la línea donde dice:
#
############ Memory Paremeters
#
-Xmx200m
cambiando el número 200 (que corresponde a 200 Mb de memoria) por el que se considere más conveniente.
El cambio tendrá efecto la próxima vez que se inicie el módulo
Para el resto de los módulos el cambio es análogo salvo que en lugar de modificar Browser.vmoptions se debe modificar el .vmoptions correspondiente. Por ejemplo: para el caso de O3Designer es Designer.vmoptions, para el caso de O3JBoss es O3JBoss.vmoptions (modificando aquí se le está aumentando la memoria al servicio JBoss), para el caso de Builder es Builder.vmoptions, etc.
Es importante saber que el cambio explicado tiene efecto solo cuando se arrancan los módulos de la forma habitual, es decir, ejecutando los archivos .exe de la carpeta o3/bin. Esto es equivalente a ejecutar los módulos desde el menú o desde los accesos directos dejados por el instalador.
Limite de memoria de JBoss para plataformas de 32bits
JBoss tiene un limite de memoria de 1400MB para plataformas de 32bits, este limite esta impuesto por el sistema operativo e incluye memoria de otros procesos.
Esto implica que para plataformas de 32bits el parámetro máximo para JBoss es -Xmx1400. Para plataformas de 64bits se puede sobrepasar este limite al permitir el sistema operativo el uso de mayor cantidad de memoria.
Aumentando memoria de scripts
En el caso de ejecutar los módulos utilizando los scripts de la plataforma, es decir, los .bat de la carpeta [o3]/bat para el caso de Windows o los .shde la carpeta [o3]/sh para el caso de Linux, entonces en este caso la configuración se debe hacer en otro lugar. Por ejemplo, si se corre O3Builder ejecutando el script [o3]/bat/Builder.bat entonces el cambio se debe hacer en el mismo Builder.bat, en la línea:
set PROPERTIES=%PROPERTIES% -mx200M
cambiando el número 200 por el que se considere más conveniente.
Si en el bat no se encuentra esta línea asi tal cual entonces buscar el texto -Xmx o -mx y modificar en ese lugar.
Otra posibilidad es el caso de tomcat.bat y tomcat.sh que no tiene esta configuración en ningún lugar. En el caso de tomcat.bat agregar una línea:
set JAVA_OPTS=%JAVA_OPTS% -Xmx200m
después de la última línea similar.
En el caso de tomcat.sh, modificar la linea:
JAVA_OPTS="-Djava.awt.headless=true ...." ; export JAVA_OPTS
insertando después de JAVA_OPTS=" el texto -Xmx200m, asi:
JAVA_OPTS="-Xmx200m -Djava.awt.headless=true ...." ; export JAVA_OPTS