Home > Java > Profiler no JBoss AS 7 (EAP 6)

Profiler no JBoss AS 7 (EAP 6)

Para configurar o agente de profiler no JBoss não basta apenas configurar o agente no JAVA_OPTS. Para esse exemplo vamos utilizar o profiler chamado YourKit.

O primeiro passo é configurar o agente no arquivo na pasta JBOSS_HOME\bin\standalone.conf, adicione as seguintes linhas no final:

# Enable profiling
JAVA_OPTS=”$JAVA_OPTS -agentpath:/Users/aristides/dev/YourKit_Java_Profiler_9.5.6.app/bin/mac/libyjpagent.jnilib=disablestacktelemetry,disableexceptiontelemetry,builtinprobes=none,delay=10000″

Se pararmos por aqui, ao executar ocorrerá o seguinte erro:

mac:bin aristides$ ./standalone.sh –server-config=standalone-full.xml
=========================================================================

JBoss Bootstrap Environment

JBOSS_HOME: /Users/aristides/dev/jboss-eap-6.1

JAVA: java

JAVA_OPTS: -server -XX:+UseCompressedOops -Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -agentpath:/Users/aristides/dev/YourKit_Java_Profiler_9.5.6.app/bin/mac/libyjpagent.jnilib=disablestacktelemetry,disableexceptiontelemetry,builtinprobes=none,delay=10000

=========================================================================

[YourKit Java Profiler 9.5.6] Loaded. Log file: /Users/aristides/.yjp/log/20397.log
Exception in thread “main” java.lang.NoClassDefFoundError: com/yourkit/runtime/Callback
at org.jboss.logmanager.LogManager.<init>(LogManager.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at java.util.logging.LogManager$1.run(LogManager.java:186)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.<clinit>(LogManager.java:175)
at org.jboss.modules.Main.main(Main.java:394)
Caused by: java.lang.ClassNotFoundException: com.yourkit.runtime.Callback from [Module “org.jboss.logmanager:main” from local module loader @1bf75734 (finder: local module finder @b7e2544 (roots: /Users/aristides/dev/jboss-eap-6.1/modules,/Users/aristides/dev/jboss-eap-6.1/modules/system/layers/base))]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119)
… 11 more

Isso ocorre por conta do controle de módulos introduzido no JBoss 7, assim é necessário configurar o pacote do profiler YourKit. Voltamos novamente  no arquivo standalone.conf, alteramos a seguinte linha:

De

   JBOSS_MODULES_SYSTEM_PKGS=”org.jboss.byteman”

Para

   JBOSS_MODULES_SYSTEM_PKGS=”org.jboss.byteman,com.yourkit”

 

Pronto problema resolvido e profiler ativado no JBoss.

 

 

 

Categories: Java Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a comment