JBoss 8.x

With the JBoss version 6 and above there is the problem with the logging when an agent that uses the java.util.logging is started with the JBoss. This problem is filled as the bug on the JBoss issue tracking system. "This is because the java agent does not have access to jboss-logmanager classes, so even if the java.util.logging.manager property is set the classes will not be available." The problem will appear when inspectIT is used as the agent:

Output when using JBoss Wild Fly 8.2
ERROR: JBAS014612: Operation ("parallel-extension-add") failed - address: ([])
java.lang.RuntimeException: JBAS014670: Failed initializing module org.jboss.as.logging
	at org.jboss.as.controller.extension.ParallelExtensionAddHandler$1.execute(ParallelExtensionAddHandler.java:111)
	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:660)
	at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:501)
	at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:298)
	at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:293)
	at org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:324)
	at org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:297)
	at org.jboss.as.server.ServerService.boot(ServerService.java:356)
	at org.jboss.as.server.ServerService.boot(ServerService.java:331)
	at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:259)
	at java.lang.Thread.run(Thread.java:744)
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: JBAS011592: The logging subsystem requires the log manager to be org.jboss.logmanager.LogManager. The subsystem has not be initialized and cannot be used. To use JBoss Log Manager you must add the system property "java.util.logging.manager" and set it to "org.jboss.logmanager.LogManager"
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:188)
	at org.jboss.as.controller.extension.ParallelExtensionAddHandler$1.execute(ParallelExtensionAddHandler.java:103)
	... 10 more
Caused by: java.lang.IllegalStateException: JBAS011592: The logging subsystem requires the log manager to be org.jboss.logmanager.LogManager. The subsystem has not be initialized and cannot be used. To use JBoss Log Manager you must add the system property "java.util.logging.manager" and set it to "org.jboss.logmanager.LogManager"
	at org.jboss.as.logging.LoggingExtension.initialize(LoggingExtension.java:122)
	at org.jboss.as.controller.extension.ExtensionAddHandler.initializeExtension(ExtensionAddHandler.java:98)
	at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:139)
	at org.jboss.as.controller.extension.ParallelExtensionAddHandler$ExtensionInitializeTask.call(ParallelExtensionAddHandler.java:125)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Jan 22, 2015 11:00:59 AM org.jboss.as.server.ServerService boot
FATAL: JBAS015957: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.



This page describes how to set up the JBoss 8.x with the inspectIT agent and overcome the problem.

Configuration

The configuration is quite simple. Only needed thing is to edit the standalone.conf file (if you start with standalone start script).

At the beginning of the file add the following line (or alter the JBOSS_MODULES_SYSTEM_PKGS variable by appending ",org.jboss.logmanager"):

# Added for logging problem
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.logmanager"

At the end of the file add the following to solve the logging problem:

# Added for logging problem
JBOSS_HOME="[path-to-jboss-folder]"
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:$JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar"

Above paths to JAR files relate to JBoss version 8.2. If you are using the different version please make sure that the paths to JARs are correct.

At the end of the file we can also integrate the inspectIT related options:

# inspectIT Settings
INSPECTIT_AGENT_HOME="[path-to-inspectit-agent-home]"
INSPECTIT_JAVA_OPTS="-Xbootclasspath/p:${INSPECTIT_AGENT_HOME}/inspectit-agent.jar -javaagent:${INSPECTIT_AGENT_HOME}/inspectit-agent.jar -Dinspectit.repository=[REPOSIOTRY_IP]:[REPOSITORY_PORT] -Dinspectit.agent.name=[AGENT_DISPLAY_NAME]"
JAVA_OPTS="${INSPECTIT_JAVA_OPTS} ${JAVA_OPTS}"

Known issues

Please see Some classes missing from instrumentation? question for information about the known problem with instrumentation on JBoss v8.