This chapter provides an overview of Java Mission Control (JMC) and its features.
The Java Mission Control Client includes tools to monitor and manage your Java application without introducing the performance overhead normally associated with these types of tools.
The Java Mission Control's low performance overhead is a result of using data collected as part of the Java 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 Java 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 topics:
The Java Mission Control Client is the application from which you connect to a JVM and start the tools that are included in JMC. On startup, the client shows the JVM Browser where you can choose a running JVM that you wish to monitor using one of the following methods:
Connect a Management Console to the running JVM. Using the Management Console you can monitor the JVM and Java application while they are running. You can even change some of the JVM properties in run time through Managed Beans (MBeans).
Create a recording of all behavior during application runtime.
The JMC tools communicate with the JVM using a JMX agent.
The plug-ins for Java Mission Control are:
Management Console, for run-time monitoring and management of your JVM and Java application
Java Flight Recorder, for always-available real time and historic performance monitoring and profiling.
To start Java Mission Control Client, see "Starting Java Mission Control Client".
The JMC client executable file is located in the bin
directory of the Java Development Kit (JDK) installation path (JAVA_HOME
). If the JAVA_HOME/bin
directory is in the PATH
environment variable, you can start the JMC client by entering jmc
at the coomand line prompt (shell). Otherwise, you have to specify the full path to the JMC executable:
JAVA_HOME\bin\jmc.exe
(Windows)
JAVA_HOME/bin/jmc
(Solaris, Linux, OS X)
Note: On Windows, a shortcut to the JMC client executable is added to the Java Development Kit folder under All Programs in the Start menu. |
Passing JVM Options To the JMC Launcher
JMC is a Java application, and the JMC client executable is a launcher for this application. JMC startup is controlled by options specified in the jmc.ini
file, which is located in the JAVA_HOME/bin
directory. Arguments to the -vmargs
option in the jmc.ini
file are options that are passed to the JVM running the JMC application. You can specify these options to control the way this JVM runs. If you do not want to modify the jmc.ini
file, you can specify JVM options on the command line as arguments to the -vmargs
option of the jmc
command.
Note: If other options are specified for the |
To start the JMC client with your own set of JVM options, overriding those specified in the jmc.ini
file, run the following command (separate multiple arguments with spaces):
jmc -vmarg arguments
To start the JMC client with additional JVM options, appending them to those specified in the jmc.ini
file, run the following command (separate multiple arguments with spaces):
jmc --launcher.appendVmargs -vmarg arguments
Using a Workspace Directory
If you want to copy your settings for the JMC client to another computer or another user, or use different predefined settings for different applications, add the -data
command-line option and define a workspace directory when you start the JMC client:
jmc -data workspace-directory
Running JMC on OS X
On OS X, when you launch the JMC executable, the Terminal window opens. When you close the JMC client, the Terminal is left behind with the text [Process completed]
. To avoid this, open the Terminal Preferences, then open the Settings tab, select the scheme you use, then select the Shell tab, and change the When the shell exits option to Close if the shell exited cleanly.
Documentation for Java Mission Control Client is available as online help with the installation of the tool.
You can contact Oracle Support for technical assistance if you are entitled to the Oracle Support services for Java Mission Control. The following types of licenses include support for Java Mission Control:
Oracle Java SE Advanced
Oracle Java SE Suite
WebLogic Server Enterprise Edition
WebLogic Suite
If you have any suggestions about how to improve the Java Mission Control plug-ins or information on how it is most commonly used in your development environments, post a comment on the Java Mission Control 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 Java Mission Control forum, which is monitored by the Mission Control engineering team at: https://forums.oracle.com/forums/forum.jspa?forumID=1419
.
The feedback will be considered by the development team designing the Java 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 Java HotSpot VM.
Table 1-1 lists some of the abbreviations used in the Java Mission Control Client.
Table 1-1 Abbreviations Used in the Java Mission Control Client
Abbreviation | Meaning |
---|---|
GC |
Garbage Collection (memory management) |
JDK |
Java Development Kit |
JDP |
Java Discovery Protocol |
JIT |
Just in Time (compilation) |
JMX |
Java Management Extensions |
JVM |
Java Virtual Machine |
MBean |
Managed Bean (Java) |
RCP |
Rich Client Platform (Eclipse) |
RMI |
Remote Method Invocation (Java) |
SSL |
Secure Socket Layer (communication) |
TLA |
Thread Local Area (memory management) |