問題点
このリンク(LiveCycle ES4 の JBoss へのインストールとデプロイ、第 10.2 章 Windows サービスのインストール)の手順に従って Windows サービスとして実行するように JBoss を設定すると、LiveCycle は次の例外を除き、起動に失敗するでしょう:
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)
コマンドラインから JBoss を起動すると、LiveCycle が正常に起動します。
原因
この問題は、このリンクで説明されているように、JBoss EAP 上の既存のバグ(#JBPAPP-5403)に関連しています。すべての JVM 引数の設定は、メモリ割り当てが無視されます。これは、boot.log 内の次の行から見られます。
[ServerInfo] VM 引数:-Xrs -Djava.net.preferIPv4Stack=true -Dprogram.name=0.0.0.0 -Djava.endorsed.dirs=\jboss\lib\endorsed
解決策
この問題は次の手順に従って解決できます。
- 「<JBoss root>\bin\service.bat」をテキストエディタで開きます。
- 次の行を探します。
@if not "%ECHO%" == "" echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal
set DIRNAME=%CD%
- 次の行に置き換えます。
@if not "%ECHO%" == "" echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal
set DIRNAME=%CD%
rem オプションの設定ファイルを読み込みます。
if "x%RUN_CONF%" == "x" (
set "RUN_CONF=%DIRNAME%\run.conf.bat"
)
if exist "%RUN_CONF%" (
call "%RUN_CONF%" %*
)
- 「service.bat」ファイルを保存します。
- 「JBoss for Adobe LiveCycle ES4」サービスを再起動します。
- 「boot.log」を開き、追加の JVM 引数が存在することを確認します:
[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
ノート
ご注意ください。この問題は、手動で作成された Windows サービスにのみ影響します。ターンキーまたは自動インストールの一部として作成された Windows サービスは、期待通りに機能します。