Al iniciar LiveCycle como servicio de Windows, se muestra el error java.lang.OutOfMemoryError: PermGen space

Problema

Después de haber configurado JBoss para que se ejecute como un servicio de Windows siguiendo las instrucciones de este vínculo (instalación e implementación de LiveCycle ES4 para JBoss, capítulo 10.2 Instalar el servicio de Windows), LiveCycle no podrá iniciarse con la siguiente excepción:

java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:48) at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:637) at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:596) at java.security.AccessController.doPrivileged(Native Method)

Si inicia JBoss desde la línea de comandos, LiveCycle se inicia correctamente.

Causa

Este problema está relacionado con un error existente (# JBPAPP-5403) en JBoss EAP, como se describe en este vínculo. Todos los argumentos de JVM que establecen la asignación de memoria se ignoran, como puede verse en la siguiente línea en el archivo boot.log:

[ServerInfo] VM arguments: -Xrs -Djava.net.preferIPv4Stack=true -Dprogram.name=0.0.0.0 -Djava.endorsed.dirs=\jboss\lib\endorsed

Solución

El problema se puede resolver siguiendo los pasos que se indican a continuación:

  • Abrir “<JBoss root>\bin\service.bat” con un editor de texto.
  • Localice las siguientes líneas:

@if not "%ECHO%" == "" echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal
set DIRNAME=%CD%

  • Sustitúyalas por las siguientes líneas:

@if not "%ECHO%" == "" echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal
set DIRNAME=%CD%

rem Read an optional configuration file.
if "x%RUN_CONF%" == "x" (
set "RUN_CONF=%DIRNAME%\run.conf.bat"
)
if exist "%RUN_CONF%" (
call "%RUN_CONF%" %*
)

  • Guarde su archivo “service.bat”.
  • Reinicie el servicio “JBoss para Adobe LiveCycle ES4”.
  • Abra su “boot.log” y verifique que los argumentos adicionales de la JVM estén presentes:

[ServerInfo] VM arguments: -Xrs -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Xms1024m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=768m -XX:+UseCompressedOops -Dadobeidp.serverName=server1 -Dfile.encoding=utf8 -Djava.net.preferIPv4Stack=true -DentityExpansionLimit=10000 -XX:+HeapDumpOnOutOfMemoryError -Dorg.jboss.net.protocol.file.useURI=false -Djdk.logging.allowStackWalkSearch=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.jboss.resolver.warning=true -Djava.net.preferIPv4Stack=true -Dprogram.name=0.0.0.0 -Djava.endorsed.dirs=E:\Adobe\Adobe LiveCycle ES4\jboss\lib\endorsed

Nota

Tenga en cuenta que este problema solo afecta al servicio de Windows creado manualmente. El servicio de Windows creado como parte de una instalación manual o automática funciona como se espera.

Logotipo de Adobe

Inicia sesión en tu cuenta