Using the JRockit Runtime Analyzer
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
The JRockit Runtime Analyzer (JRA) is an internal tool used by the WebLogic JRockit development team to analyze runtime performance of WebLogic JRockit and Java applications running on WebLogic JRockit. JRA is now being made available to external WebLogic JRockit users to give them the same analytical capabilities as BEA's developers.
JRA provides a wealth of information on the internals of WebLogic JRockit that development teams will find helpful for understanding and optimizing runtime performance. Some of these metrics are interesting to Java developers using WebLogic JRockit as their runtime, as well.
The JRockit Runtime Analyzer consists of two parts:
This document described how to use JRA. It includes information on the following subjects:
The JRockit Runtime Analyzer is compatible with WebLogic JRockit 8.1 JVM, service pack 1.
BEA Systems is making JRA available to external users so that you can help us make WebLogic JRockit JVM a better virtual machine. JRA was created to provide an easy way to capture information about WebLogic JRockit when it is running in a deployment environment. JRA is designed to induce a minimal overhead when enabled, and no overhead at all when not enabled. The typical overhead we have seen when it is enabled is around 1-2%, which is in most cases negligible.
Because of this, JRA can be used to capture a true picture of the running system. The data that is recorded is actually what is happening and not a side effect of having the tool enabled. JRA is able to do this by being very tightly integrated into the JVM.
The results of these recordings are often used within the engineering team to guide future improvements to WebLogic JRockit. You can help us with this effort by sending the JRA recordings of your J2SE or J2EE application running with WebLogic JRockit, as described in this procedure:
WebLogic JRockit is already the fastest server-side JVM available, and to stay that way BEA is committed to find ways to improve its performance. The JRA is one of those ways.
The recordings will be analyzed by the development team using the JRA. We will look at the profile of your application and try to find out how we can improve WebLogic JRockit in the future to be able to run your application faster and more efficiently.
Note: BEA Systems will not disclose, share, or discuss any information related to the recording files with anyone outside of BEA.
You can download the JRA and use it yourself to analyze the recordings. To acquire the JRA, simply download the file (jra81sp1.zip
) from the Download JRockit Runtime Analyzer Tool link on:
http://dev2dev.bea.com/products/wljrockit81/analyzer.jsp
Note: Please read the information on this page carefully before downloading the JRA. Pay particular attention to the Disclaimer.
This file contains the jraRecordingStarter.jar
and RuntimeAnalyzer.jar
files, along with two utility files needed by RuntimeAnalyzer.jar
. After downloading the zip file, unzip it to a directory of your choosing and run it from there.
While a lot of the information provided by the tool is only useful to the JVM engineers, you might find some of the information useful for improving the performance of your Java application. You can also gain some insight into the complicated inner workings of a modern day state of the art JVM.
To create a JRA recording with WebLogic JRockit, use the JraRecordingStarter
utility and follow these simple steps:
-Xmanagement
option in the command line.> java -jar JraRecordingStarter.jar <server> <port> <filename>
<recording time>
The following same steps explain the recording process in greater detail:
-Xmanagement
. This tells WebLogic JRockit to open a port and listen to commands from a management client (read more about this in the Using the WebLogic JRockit Management Console).Note: The JRA recording functionality is only available in WebLogic JRockit 8.1SP1.
> java -jar JraRecordingStarter.jar <server> <port> <filename>
<recording time>
<server>
is the host name of the machine where your application is running (usually localhost
).<port>
is the port that WebLogic JRockit is listening to (usually 7090)<filename>
is the name of the file you want to save the recording to (for example jrarecording.xml). This is the name of the file on the host where the recording is done (<server>
above). The file will be created in the current directory of the WebLogic JRockit process. The file will be overwritten if it exits.<recording time>
is the length of the recording in seconds (a good length is five minutes; this is, 300 seconds).After the recording has commenced, you will see a message printed by WebLogic JRockit that the recording has started. You will see another message halfway through the recording and a final message when the recording is finished. After the final message is printed you can shut down the application.
Use the JRA to take a look at the recording you just created.
jvm#
are native methods in the JVM. By clicking on a method you can see it's predecessors and successors to the right. java.lang.ref.*
objects discovered. There is also a view showing which call trace execute the allocation that triggered a GC to happen.
Since this is an internal tool and not a supported product, we cannot make any guarantees about the correctness of the data we show, or the stability of the product when using JRA. Neither do we have the ability to provide support or answer questions about JRA. The tool is provided as is for you convenience and to help us improve WebLogic JRockit. The JRA functionality may or may not be available in future WebLogic JRockit versions. If you have any questions you are welcome to share them in the WebLogic JRockit newsgroups which are monitored by the engineering team.
I am getting very few samples, is there anything I can change?
Try re-running WebLogic JRockit with the -XXjranonativesamples
parameter and see if you get more samples now.
Is the overhead really as small as 1-2%?
Yes, for the applications that we have measured this has been the case. However the overhead can momentarily be larger when the .xml
file is written to disk.
My server is under such heavy load that the JraRecordingStarter consistently fails to connect to it. Is there another way to start a recording?
Yes. There are command line parameters to WebLogic JRockit to start a recording after a specified time. These options are a bit more inflexible, but work better when the server is under heavy load:
![]() |
![]() |
![]() |