Das Starten von LiveCycle als Windows-Dienst scheitert mit „java.lang.OutOfMemoryError: PermGen space“

Problem

Nachdem Sie JBoss zur Ausführung als Windows-Dienst konfiguriert haben, folgen Sie den Anweisungen in diesem Link (Installation und Bereitstellung von LiveCycle ES4 für JBoss, Kapitel 10.2: Installation des Windows-Dienstes), schlägt der Start von LiveCycle mit der folgenden Ausnahme fehl:

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)

Wenn Sie JBoss über die Befehlszeile aufrufen, startet LiveCycle erfolgreich.

Ursache

Dieses Problem bezieht sich auf einen bestehenden Bug (# JBPAPP-5403) auf JBoss EAP, wie in diesem Link beschrieben. Alle JVM-Argumente, die die Speicherzuweisung festlegen, werden ignoriert, wie aus der folgenden Zeile in der boot.log ersichtlich ist:

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

Lösung

Das Problem kann durch Ausführen der folgenden Schritte behoben werden:

  • Öffnen Sie „<JBoss root>\bin\service.bat“ mit einem Texteditor.
  • Suchen Sie die folgenden Zeilen:

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

  • Ersetzen Sie diese durch die folgenden Zeilen:

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

rem liest eine optionale Konfigurationsdatei.
if "x%RUN_CONF%" == "x" (
set "RUN_CONF=%DIRNAME%\run.conf.bat"
)
if exist "%RUN_CONF%" (
call "%RUN_CONF%" %*
)

  • Speichern Sie die Datei „service.bat“.
  • Starten Sie den Dienst „JBoss für Adobe LiveCycle ES4“ neu.
  • Öffnen Sie Ihre „boot.log“ und überprüfen Sie, ob die zusätzlichen JVM-Argumente vorhanden sind:

[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

Hinweis

Bitte beachten Sie, dass dieses Problem nur den manuell erstellten Windows-Dienst betrifft. Der im Rahmen einer gebrauchsfertigen oder automatischen Installation erstellte Windows-Dienst funktioniert wie erwartet.

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?