13 Replies Latest reply: Dec 4, 2013 5:25 AM by Srinu Anumaneni RSS

JBoss Profiler Quick Start

Scott Dawson Apprentice

Please consider adding a "Quick Start" guide to the JBoss Profiler documentation to help new users get up and running quickly.

Here's my first draft based on JBoss Profiler 1.0.CR4 with JBoss App Server 4.0.5 and Java 1.5:

Installation:
1) copy jboss-profiler-noAOP.sar to the JBoss AS deploy directory
2) put jbossInspector.dll in your PATH (Windows)
or libjbossInspector.so in your LD_LIBRARY_PATH (Linux/Unix)
3) copy jboss-profiler.war to the JBoss AS deploy directory
Configuration:
1) Add something like this to the JBoss JVM options: -XrunjbossInspector:/tmp/profiler,include=com.unisys,ignore=*,memory=false
Make sure the output directory (/tmp/profiler in this example) exists.
Usage:
1) In the jmx-console, use the jboss.profiler Native-profiler mbean to activate profiling
2) Exercise your application
3) In the jmx-console, use the jboss.profiler Native-profiler mbean to stop profiling (if you forget to do this, you will
probably get a java.io.EOFException when you try to use the analyzer war)
4) Analyze results using the JBoss Profiler web app at localhost:8080/jboss-profiler
Example analysis:
a. Click on 'Runtime Profiler'
b. Enter the output directory, for example, /tmp/profiler
c. Check 'Stack on methods', uncheck other options and submit
d. Click 'click here'
e. Click the 'All Methods' link to get a view of time allocation among individual methods

Regards,
Scott Dawson
Unisys

  • 1. Re: JBoss Profiler Quick Start
    william william Newbie

    I encoutered an issue at the step 2).
    This is the new DLL
    Running process on Windows 2100
    Usage: java [-options] class [args...] <to execute a class>
    or java [-options] -jar jarfile [args...]

  • 2. Re: JBoss Profiler Quick Start
    Scott Dawson Apprentice

    I think in step 2 it would have been clearer if I'd said: copy the DLL or SO to a directory found in your PATH or LD_LIBRARY_PATH.
    Is that what you are doing?

    Scott

  • 3. Re: JBoss Profiler Quick Start
    william william Newbie

    Hi Scott,

    I have put dll in my path (Windows). from the warning messages(This is the new DLL ), we can get that DLL has been found.

    In additions, I also copy jboss-profiler.war to the JBoss AS deploy directory.

    do you have any ideas?

  • 4. Re: JBoss Profiler Quick Start
    william william Newbie

    Hi Everyone,

    I have worked out the issue.
    Anyways thanks for your helps.

  • 5. Re: JBoss Profiler Quick Start
    Jignesh P Newbie

    Hi,

    I am new to JBoss Profiler. Please help me to setup it within JBoss Application Server.
    I am using jboss-4.0.5.GA. The output of 'java -version' command is :
    ----------------
    java version "1.5.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
    Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode, sharing)
    ----------------
    The operating system is Windows Server 2003.
    I am using jboss-profiler-1.0.CR4(2).

    I have setup it as follows:
    1. Copied jbossInspector.dll to C:\Windows\System32
    2. Copied jboss-profiler.war, jboss-profiler-jvmti.sar and jboss-profiler-noAOP.sar to %JBOSS_HOME%\server\default\deploy directory
    3. Edited run.bat file and appended following to JAVA_OPTS:
    -XrunjbossInspector:%JBOSS_HOME%/server/default/tmp/profiler,memory=true,tracer=true
    4. Created profiler directory under tmp folder for above step.

    When I started the jboss service by double clicking the run.bat file, I got following exception:
    ----------------
    2007-12-11 03:25:39,619 DEBUG [org.jboss.deployment.SARDeployer] Deploying SAR, create step: url file:/D:/JBoss/jboss-4.0.5.GA/server/default/deploy/jboss-profiler-jvmti.sar
    2007-12-11 03:25:39,619 DEBUG [org.jboss.deployment.SARDeployer] Registering service UCL=jmx.loading:UCL=8f2ca6
    2007-12-11 03:25:39,619 DEBUG [org.jboss.system.ServiceCreator] About to create xmbean object: jboss.profiler:mbean=JVMTIClass with code: org.jboss.profiler.jvmti.JVMTIInterface with descriptor: META-INF/jvmti-xmbean.xml
    2007-12-11 03:25:39,650 ERROR [org.jboss.profiler.jvmti.JVMTIInterface] The DLL couldn't be loaded, you won't be able to use any JVMTIInterface feature
    java.lang.UnsatisfiedLinkError: no jbossAgent in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:992)
    at org.jboss.profiler.jvmti.JVMTIInterface.(JVMTIInterface.java:65)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    .....
    .....
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
    at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
    at $Proxy5.deploy(Unknown Source)
    at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
    at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
    at org.jboss.Main.boot(Main.java:200)
    at org.jboss.Main$1.run(Main.java:490)
    at java.lang.Thread.run(Thread.java:595)
    2007-12-11 03:25:39,806 DEBUG [org.jboss.system.ServiceCreator] Created bean: jboss.profiler:mbean=JVMTIClass
    2007-12-11 03:25:39,806 DEBUG [org.jboss.system.ServiceController] Creating service jboss.profiler:mbean=JVMTIClass
    ----------------

    Am I missing something? Please help me.

    Thanks

  • 6. Re: JBoss Profiler Quick Start
    Clebert Suconic Master

    If you also want to install the Memory leak tool (JVMTI) you will also need to copy jbossAgent.dll/so into your path (and add -agentlib:jbossAgent to your JVM)

  • 7. Re: JBoss Profiler Quick Start
    Jignesh P Newbie

    Thanks, I have followed what has been written above and now I am not getting any exception while starting the jboss service.

    much appreciated..

  • 8. Re: JBoss Profiler Quick Start
    Mara John Newbie

    Please help me on how I can deploy jboss-profiler.SAR, I use JBoss 4.2, Java 1.6 and trying to install jboss-profiler-2.0.Beta3.SP1 with no luck. I followed all the instructions but it still gives me errors when trying to profile

  • 9. Re: JBoss Profiler Quick Start
    Jesper Pedersen Master

    mjn, update to 2.0.0.Beta5 and follow the installation chapter in the user guide.

  • 10. Re: JBoss Profiler Quick Start
    Darpan Mhatre Newbie

    Hi folks

        I am new to jboss profiler. I have installed jboss profiler 2.0.0.Beta5 on linux box without any worries by reading jbossprofiler2-userguide.pdf.

    Now I want to see the output. I googled some ways to do it like in command line and thru jboss profiler webinterface. But i cannot find any good documentation step by step.

        Can anyone post a good link or the step by step process to read the output. I also noticed to .jps files created in my jbossAS\bin dir

    But am not able to read it. Look forward to hear from you.

    Thanks in advance,

    Darpan

  • 11. Re: JBoss Profiler Quick Start
    cooldownthethroat Newbie

    I am trying to run JBOSS Profiler in JBOSS 5.0 and following steps which are mentioned in the userguide.

     

    My HTTP port for my web application is 8080.

    When I configure the same port in Jboss-profiler.properties file even after that during startup I see

    JBoss Profiler: Communicator for JBoss Profiler 2.0.0.Beta5

    JBoss Profiler: Socket=IP:5400 (say IP is 10.10.10.10)

     

    Now, the server starts up pretty well and when I open JMX console I can see the Mbean also for both communicator and profiler.

     

    However when I try to access http://10.10.10.10:8080/jboss-profiler I get no page found error

     

    and when I try to access http://10.10.10.10:5400/jboss-profiler I get the following error:-

     

    java.lang.reflect.InvocationTargetException

            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

            at org.jboss.remoting.transport.socket.ServerThread.createServerSocketWrapper(ServerThread.java:907)

            at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:489)

            at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)

    Caused by: java.io.StreamCorruptedException: invalid stream header: 47455420

            at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782)

            at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)

            at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.<init>(ObjectInputStreamWithClassLoader.java:97)

            at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.createInput(JavaSerializationManager.java:54)

            at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.getMarshallingStream(SerializableUnMarshaller.java:7

            at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.getMarshallingStream(SerializableUnMarshaller.java:5

            at org.jboss.remoting.transport.socket.ClientSocketWrapper.createInputStream(ClientSocketWrapper.java:179)

            at org.jboss.remoting.transport.socket.ClientSocketWrapper.createStreams(ClientSocketWrapper.java:162)

            at org.jboss.remoting.transport.socket.ClientSocketWrapper.<init>(ClientSocketWrapper.java:66)

            at org.jboss.remoting.transport.socket.ServerSocketWrapper.<init>(ServerSocketWrapper.java:46)

            ... 7 more

     

    Can anyone please guide me how to run it properly....

     

    Steps followed to configure Profiler:-

    Copy jboss-profiler.jar to jbossas/bin

    • Copy jboss-profiler.properties to jbossas/bin

    • Edit jboss-profiler.properties in jbossas/bin to include the classes to be profiled

    • Copy jboss-profiler-plugins.jar to jbossas/bin

    • Edit run.bat (Windows) in jbossas/bin to include JBoss Profiler in JAVA_OPTS

    • Copy jboss-profiler.sar to jbossas/server/<conf>/deploy

    • Boot application server

     

    If I click on start profiler from the MBean I get the following exception:-

     

    org.jboss.remoting.InvalidConfigurationException: The invoker for locator (InvokerLocator [socket://10.10.10.10:5400/]) is already in use by another Connector.  Either change the locator or add new handlers to existing Connector.

            at org.jboss.remoting.InvokerRegistry.createServerInvoker(InvokerRegistry.java:552)

            at org.jboss.remoting.transport.Connector.init(Connector.java:419)

            at org.jboss.remoting.transport.Connector.create(Connector.java:1139)

            at org.jboss.profiler.as.Communicator.startSocket(Communicator.java:316)

            at org.jboss.profiler.as.Communicator.start(Communicator.java:277)

            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

            at java.lang.reflect.Method.invoke(Method.java:597)

            at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)

            at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)

            at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)

            at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)

            at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)

            at org.jboss.jmx.adaptor.control.Server.invokeOpByName(Server.java:258)

            at org.jboss.jmx.adaptor.control.Server.invokeOp(Server.java:223)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$3.run(HtmlAdaptorServlet.java:380)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$3.run(HtmlAdaptorServlet.java:378)

            at java.security.AccessController.doPrivileged(Native Method)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOp(HtmlAdaptorServlet.java:376)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOp(HtmlAdaptorServlet.java:287)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.processRequest(HtmlAdaptorServlet.java:104)

            at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.doPost(HtmlAdaptorServlet.java:86)

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)

            at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)

            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)

            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)

            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)

            at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)

            at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)

            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

            at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)

            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)

            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)

            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)

            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

            at java.lang.Thread.run(Thread.java:662)

  • 12. Re: JBoss Profiler Quick Start
    Naeem Arshad Newbie

    Hi Scott Dawson, How can I perform the same steps on Mac osx Lion? I can not find the path LD_LIBRARY_PATH on my mac. does anyone know the solution how to solve this issue on mac osx?

     

    thanks

  • 13. Re: JBoss Profiler Quick Start
    Srinu Anumaneni Newbie

    I am using jboss 7.1 . Where i need to place jboss-profiler.sar file as i do not have deafult and deploy folders