JBoss スタンドアロンに Java エージェントをインストールする方法(Windows)

JBossスタンドアロンにJavaエージェントをインストールする方法:
  1. standalone.bat ファイルで次の javaagent 引数を追加します。
    set JAVA_OPTS=%JAVA_OPTS% -javaagent:\agent_install_dir\javaagent.jar
  2. 引数をstandalone.shの次のセクションの上に置く
    RESTART
    "%JAVA%" %JAVA_OPTS% ^
    "-Dorg.jboss.boot.log.file=%JBOSS_LOG_DIR%\server.log" ^
    "-Dlogging.configuration=file:%JBOSS_CONFIG_DIR%/logging.properties" ^
    -jar "%JBOSS_HOME%\jboss-modules.jar" ^
    -mp "%JBOSS_MODULEPATH%" ^
    -jaxpmodule "javax.xml.jaxp-provider" ^
    org.jboss.as.standalone ^
    "-Djboss.home.dir=%JBOSS_HOME%" ^
    %SERVER_OPTS%
  3. アプリケーションサーバーを再起動する。
  4. standalone.conf ファイルの最後にある JAVA_OPTS セクションに次を追加します。
    -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:{{}}
    <path_to_jboss_logmanager>\jboss-logmanager-<version>.jar
    JDK9 以降では、-Xbootclasspath/p オプションは削除されました。代わりに -Xbootclasspath/a を使用してください。
    -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/a:
    <path_to_jboss_logmanager>/jboss-logmanager-<version>.jar
  5. <path_to_jboss_logmanager><version> をシステムのパスおよびログマネージャ JAR ファイル名で置き換えます。
    パスを動的にする方法については、「LogManager の場所を動的にする」を参照。
    注: ステップ 4 とステップ 5 は、ログマネージャのエラーが発生した場合にのみ必須です。また、この変更後にステップ 3 を繰り返します。
動的な LogManager の場所

スタンドアロン JBoss インスタンスでは、パスおよびログマネージャ JAR 名をハードコーディングするのではなく、glob パターンマッチング技術を使ってログマネージャファイルへのパスを動的にすることで、システム間の変更や差異に対する回復機能を持たせることができます。

これを実行する正確な手順は、環境によって異なります。次のセクションでは、独自の実装を開始する場合の、Windows システムと Linux システムでの構成例を示します。

Windows

Windowsの場合、standalone.conf.batにこの付加的なスニペットが追加されます。

...
rem jboss.modules.system.pkgs
set JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman,com.singularity,org.jboss.logmanager
rem java.util.logging
set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.jboss.logmanager.LogManager
rem bootclasspath
set LOGMANAGER=
for /f %%i in ('dir /b "%JBOSS_HOME%\modules\system\layers\base\org\jboss\logmanager\main\jboss-logmanager-*.jar"') do (
set LOGMANAGER_JAR=%JBOSS_HOME%\modules\system\layers\base\org\jboss\logmanager\main\%%i
)
set JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:%LOGMANAGER_JAR%

JBossホーム下のLogManager JARファイルへのパスはJBossのバージョンにより異なる場合があります。ご使用のシステムを確認し、それに応じて例にあるようにパスを調整します。

Linux

Linuxの場合、次のコードを使いパスを動的に追加できます。

JBOSS_MODULES_SYSTEM_PKGS ="org.jboss.byteman,com.singularity,org.jboss.logmanager"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$(ls ${JBOSS_HOME}/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-*.jar)"

例にあるように ${JBOSS_HOME} 変数を使用する場合、ディレクトリへの変数をご利用のシステムの JBoss インストールディレクトリに設定します。

JBossホーム下のLogManager JARファイルへのパスはJBossのバージョンにより異なる場合があります。ご使用のシステムを確認し、それに応じて例にあるようにパスを調整します。