Le démarrage de LiveCycle en tant que service Windows échoue avec "java.lang.OutOfMemoryError: PermGen space"

Problème

Après avoir configuré JBoss pour qu’il fonctionne en tant que service Windows en suivant les instructions de ce lien (Installation et déploiement de LiveCycle ES4 pour JBoss, chapitre 10.2 Installation du service Windows), LiveCycle ne pourra pas démarrer avec l’exception suivante :

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 vous lancez JBoss à partir de la ligne de commande, LiveCycle démarre correctement.

Cause

Ce problème est lié à un bogue existant (# JBPAPP-5403) sur JBoss EAP, tel que décrit sur ce lien. Tous les arguments JVM définissant l’allocation de mémoire sont ignorés, comme le montre la ligne suivante dans le fichier boot.log :

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

Solution

Le problème peut être résolu en procédant comme suit :

  • Ouvrez "<JBoss root>\bin\service.bat" avec un éditeur de texte.
  • Recherchez les lignes suivantes :

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

  • Remplacez par les lignes suivantes :

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

rem Lire un fichier de configuration optionnel.
if "x%RUN_CONF%" == "x" (
set "RUN_CONF=%DIRNAME%\run.conf.bat"
)
if exist "%RUN_CONF%" (
call "%RUN_CONF%" %*
)

  • Enregistrez le fichier "service.bat".
  • Redémarrez le service "JBoss for Adobe LiveCycle ES4".
  • Ouvrez votre "boot.log" et vérifiez que les arguments JVM supplémentaires sont présents :

[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

Remarque

Veuillez noter que ce problème affecte uniquement le service Windows créé manuellement. Le service Windows créé dans le cadre d’une installation clé en main ou d’une installation automatique fonctionne comme prévu.

Recevez de l’aide plus rapidement et plus facilement

Nouvel utilisateur ?