This chapter provides an overview about Oracle JRockit Mission Control and its features.
The Oracle JRockit Mission Control Client tools suite was introduced with Oracle JRockit JVM R26.0.0. It includes tools to monitor, manage, profile, and eliminate memory leaks in your Java application without introducing the performance overhead normally associated with these types of tools.
The JRockit Mission Control's low performance overhead is a result of using data collected as part of the JRockit JVM's normal adaptive dynamic optimization. This also eliminates the problem with the Heisenberg anomaly that can occur when tools using byte code instrumentation alters the execution characteristics of the system. The JRockit Mission Control functionality can always be available on-demand and the small performance overhead is only in effect while the tools are running.
This section contains information on the following subjects:
Installation instructions can be found in the Oracle JRockit Installation Guide on the Oracle Technology Network.
The JRockit Mission Control Client executable is located in JROCKIT_HOME/bin
. If this directory is on your system path, you can start JRockit Mission Control by simply typing jrmc
in a command (shell) prompt.
Otherwise, you have to type the full path to the executable file, as shown below:
JAVA_HOME\bin\jrmc.exe (Windows) JAVA_HOME/bin/jrmc (Linux)
On Windows installations, you can start JRockit Mission Control from the Start menu.
This topic lists and provides answers to questions frequently asked about JRockit Mission Control.
I cannot install extra plug-ins from the JRockit Mission Control application when a web proxy is configured. How should I start the application when a web proxy is enabled?
Set the proxy properties and start JRockit Mission Control as follows:
JAVA_HOME/bin/java -Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=proxyport [-Dhttp.proxyUser=user Dhttp.proxyPassword=password] -jar JAVA_HOME/missioncontrol/mc.jar
I cannot connect the JRockit Mission Control Client. What could be the problem?
Consider the following:
Are you using the correct protocol?
The easiest way is to ensure that you are using the same version of the JRockit JVM you want to monitor as the JVM running the JRockit Mission Control client. If that is not an option, you can use the radio buttons in the connection dialog box in the JRockit Mission Control Client to select which protocol to use: 1.4 will select RMP and 1.5 and later will select JMXRMI.
For earlier versions of JRockit Mission Control these radio buttons do not exist and, to make a JRockit JVM 5.0 instance connect to a 1.4 version, you must explicitly specify the JMX Service URL. The format of the service URL is:
service:jmx:rmp://<hostname>:<port>
for example:
service:jmx:rmp://localhost:7091
Are the correct ports opened?
JMX over RMI uses two ports and that one of the ports will not be known beforehand.
Is the communication caught in the firewall?
See Chapter 2, "JRockit Mission Control Communications" for more information.
When attempting to connect to JRockit Mission Control I get a stack trace indicating that JRockit Mission Control attempts to communicate with a strange IP or host name.
Sometimes RMI can have a problem determining which address to use. This can happen because of
Access restrictions in the Security manager.
The machine being multihomed and RMI picking the wrong interface.
A misconfigured hosts file or a number of different network related configuration problems.
If all else fails you can try specifying the java.rmi.server.hostname system property. Please note that this can affect applications running in the JVM.
I'm getting exceptions during startup about classes not being found
Make sure you are using the proper launcher to start up the JRockit Mission Control Client. You must only use JAVA_HOME/bin/jrmc
.
JRockit Mission Control can't find any local JVMs
Make sure you are using the proper launcher to start up the JRockit Mission Control Client. You must only use JAVA_HOME/bin/jrmc
.
Why can't I see any Method Profiling information in my flight recording?
By default, the JRockit Mission Control Client will not show data on tabs if the recording lacks the necessary events. Ensure that method profiling was enabled for your flight recording and that the application was under load. If the JRockit JVM is spending most of the time with threads that are not doing any work, samples will not be recorded.
When using the Memory Leak Detector, nothing happens in the growth column of the trend table
The algorithm needs at least three data points to kick in and the data is collected as part of the old space mark phase of the garbage collection. If you see no data, possibly not enough garbage has been collected for these collections to occur. To speed up the process, try clicking the garbage can in the toolbar of the Memory Leak application to force three successive garbage collections, with a brief pause in between each collection.
Documentation for JRockit Mission Control Client is available as online help with the installation of the tool.
You are entitled to support if you have an Enterprise licence.
If you have any suggestions about how to improve the JRockit Mission Control plug-ins or information on how it is most commonly used in your development environments, post a comment on the JRockit forum. This information would contribute to our understanding on how to best further improve these tools in the future.
To submit an idea or other feedback, post a comment on the Oracle Technology Network's JRockit forum, at http://forums.oracle.com/forums/forum.jspa?forumID=561
.
The feedback will be considered by the development team designing the Oracle JRockit Mission Control plug-ins. Oracle will look at collected ideas and improve the plug-ins to make them even easier to use. Oracle's goal with these plug-ins is to simplify the tasks in getting your applications to run as smoothly as possible on the Oracle JRockit JVM.