Exit Print View

Sun GlassFish Enterprise Server v3 Application Development Guide

  This Document Entire Library
Print View

Document Information

Preface

Part I Development Tasks and Tools

1.  Setting Up a Development Environment

2.  Class Loaders

3.  Using Ant with Enterprise Server

4.  Debugging Applications

Enabling Debugging

To Set the Server to Automatically Start Up in Debug Mode

JPDA Options

Generating a Stack Trace for Debugging

Application Client Debugging

Sun GlassFish Message Queue Debugging

Enabling Verbose Mode

Enterprise Server Logging

Profiling Tools

The NetBeans Profiler

The HPROF Profiler

To Use HPROF Profiling on UNIX

The JProbe Profiler

To Enable Remote Profiling With JProbe

Part II Developing Applications and Application Components

5.  Securing Applications

6.  Developing Web Services

7.  Using the Java Persistence API

8.  Developing Web Applications

9.  Using Enterprise JavaBeans Technology

10.  Using Container-Managed Persistence

11.  Developing Java Clients

12.  Developing Connectors

13.  Developing Lifecycle Listeners

Part III Using Services and APIs

14.  Using the JDBC API for Database Access

15.  Using the Transaction Service

16.  Using the Java Naming and Directory Interface

17.  Using the Java Message Service

18.  Using the JavaMail API

Index

Profiling Tools

You can use a profiler to perform remote profiling on the Enterprise Server to discover bottlenecks in server-side performance. This section describes how to configure these profilers for use with the Enterprise Server:

Information about comprehensive monitoring and management support in the Java 2 Platform, Standard Edition (J2SE platform) is available at http://java.sun.com/javase/6/docs/technotes/guides/management/index.html.

The NetBeans Profiler

For information on how to use the NetBeans profiler, see http://www.netbeans.org and http://blogs.sun.com/roller/page/bhavani?entry=analyzing_the_performance_of_java.

The HPROF Profiler

The Heap and CPU Profiling Agent (HPROF) is a simple profiler agent shipped with the Java 2 SDK. It is a dynamically linked library that interacts with the Java Virtual Machine Profiler Interface (JVMPI) and writes out profiling information either to a file or to a socket in ASCII or binary format.

HPROF can monitor CPU usage, heap allocation statistics, and contention profiles. In addition, it can also report complete heap dumps and states of all the monitors and threads in the Java virtual machine. For more details on the HPROF profiler, see the technical article at http://java.sun.com/developer/technicalArticles/Programming/HPROF.html.

After HPROF is enabled using the following instructions, its libraries are loaded into the server process.

To Use HPROF Profiling on UNIX

  1. Use the Administration Console. Select the Enterprise Server component and the JVM Settings tab. Then select the Profiler tab.

  2. Edit the following fields:

    • Profiler Name – hprof

    • Profiler Enabled – true

    • Classpath – (leave blank)

    • Native Library Path – (leave blank)

    • JVM Option – Select Add, type the HPROF JVM option in the Value field, then check its box. The syntax of the HPROF JVM option is as follows:

      -Xrunhprof[:help]|[:param=value,param2=value2, ...]

      Here is an example of params you can use:

      -Xrunhprof:file=log.txt,thread=y,depth=3

      The file parameter determines where the stack dump is written.

      Using help lists parameters that can be passed to HPROF. The output is as follows:

      Hprof usage: -Xrunhprof[:help]|[:<option>=<value>, ...]
      
      Option Name and Value   Description             Default
      ---------------------   -----------             -------
      heap=dump|sites|all     heap profiling          all
      cpu=samples|old         CPU usage               off
      format=a|b              ascii or binary output  a
      file=<file>             write data to file      java.hprof
                                     (.txt for ascii)
      net=<host>:<port>       send data over a socket write to file
      depth=<size>            stack trace depth       4
      cutoff=<value>          output cutoff point     0.0001
      lineno=y|n              line number in traces?  y
      thread=y|n              thread in traces?       n
      doe=y|n                 dump on exit?           y

      Note - Do not use help in the JVM Option field. This parameter prints text to the standard output and then exits.

      The help output refers to the parameters as options, but they are not the same thing as JVM options.


  3. Restart the Enterprise Server.

    This writes an HPROF stack dump to the file you specified using the file HPROF parameter.

The JProbe Profiler

Information about JProbe from Sitraka is available at http://www.quest.com/jprobe/.

After JProbe is installed using the following instructions, its libraries are loaded into the server process.

To Enable Remote Profiling With JProbe

  1. Install JProbe 3.0.1.1.

    For details, see the JProbe documentation.

  2. Configure Enterprise Server using the Administration Console:

    1. Select the Enterprise Server component and the JVM Settings tab. Then select the Profiler tab.

    2. Edit the following fields before selecting Save and restarting the server:

      • Profiler Name – jprobe

      • Profiler Enabled – true

      • Classpath – (leave blank)

      • Native Library Path – JProbe-dir/profiler

      • JVM Option – For each of these options, select Add, type the option in the Value field, then check its box

        -Xbootclasspath/p:JProbe-dir/profiler/jpagent.jar

        -Xrunjprobeagent

        -Xnoclassgc


      Note - If any of the configuration options are missing or incorrect, the profiler might experience problems that affect the performance of the Enterprise Server.


      When the server starts up with this configuration, you can attach the profiler.

  3. Set the following environment variable:

    JPROBE_ARGS_0=-jp_input=JPL-file-path

    See Step 6 for instructions on how to create the JPL file.

  4. Start the server.

  5. Launch the jpprofiler and attach to Remote Session. The default port is 4444.

  6. Create the JPL file using the JProbe Launch Pad. Here are the required settings:

    1. Select Server Side for the type of application.

    2. On the Program tab, provide the following details:

      • Target Server – other-server

      • Server home Directory – as-install

      • Server class File – com.sun.enterprise.server.J2EERunner

      • Working Directory – as-install

      • Classpath – as-install/lib/appserv-rt.jar

      • Source File Path – source-code-dir (in case you want to get the line level details)

      • Server class arguments – (optional)

      • Main Package – com.sun.enterprise.server

      You must also set VM, Attach, and Coverage tabs appropriately. For further details, see the JProbe documentation. After you have created the JPL file, use this an input to JPROBE_ARGS_0.