Java Mission Control (JMC) is a commercial feature available for Java users with a Commercial License.
The JDK 7 update 40 release includes the first release of Java Mission Control (JMC) that is bundled with the Hotspot JVM.
Several new and improved features are available in this release:
New JVM Browser
The JVM Browser now have subnodes for available server side services that show the state of services. The new JVM Browser can be viewed in two different modes; as a flat list, and as a tree.
Eclipse 3.8/4.2 support
The Mission Control client is now built to run on Eclipse 3.8.2/4.2.2 and later.
Improved MBean Browser
It is now possible to edit values for settable attributes directly in the attribute tree. Notifications in the notifications tab can now be expanded to more than one.
Java Flight Recorder (JFR)
Event Convergence with JRockit; the same useful information that was provided by JRockit VM is now also available from Hotspot VM.
To enable JFR, use the following option with java command:
-XX:+UnlockCommercialFeatures
There are also three new JFR options for the java command:
-XX:+|-FlightRecorder -XX:+|-StartFlightRecording
-XX:FlightRecorderOptions=parameter=value
These options are described in Java Command Reference (Solaris and Linux) and Java Command Reference (Windows).
Method Profiling Events
This is a new feature in this release:
Other features such as allocation profiling, latency analysis, thread graph (providing an over view of running threads) have been added or improved.
New templates and a new Template Manager have also been added.
DTrace Plug-in is only available for JDK running on Solaris, but client can run on JMC platforms.
To install DTrace plug-in in the stand alone version of Mission Control, use Help | Install New Software...
option from the menu.
JMC does not include or run with a security manager, so a user must ensure to run the JMC client in a secure environment.
On Mac OS X platform, if the JDK is installed in a location containing spaces, it is not possible to launch Java Mission Control (JMC) using the jmc launcher in bin, or the Java Mission Control app. The workaround is to either change to a location without spaces, or launch JMC using the following:
java -XstartOnFirstThread -Djava.net.preferIPv4Stack=true
-Dorg.eclipse.swt.internal.carbon.smallFonts
-jar <JAVA_HOME>/lib/missioncontrol/mc.jar
-ws cocoa
The Java Flight Recorder consumes a lot of graphics device interface (GDI) resources. When multiple recordings are opened, the user might run out of GDI resources, which can lead to recordings showing incorrect data (new recordings will render the data from the last visited recording tabs). To avoid this issue, do not open more than three recordings simultaneously.
An exception without any useful info is thrown when you try to attach to a 32-bit JVM from a 64-bit JMC.
On some Linux distributions (for example, Ubuntu 11.04 and later) the welcome screen is blank.
Localization Issues:
Some of strings in the UI that are provided by Eclipse, cannot be processed by JMC localization. To obtain the full Japanese and Chinese language packs, the user needs to install "Babel" (a set of localization tools for Eclipse projects) using the p2 Director
command line application in JMC.
To add Japanese support from Babel, run the following command:
jmc -nosplash -application org.eclipse.equinox.p2.director
-r http://download.eclipse.org/technology/babel/update-site/R0.10.1/juno
-i org.eclipse.babel.nls_eclipse_ja.feature.group
To add Chinese support from Babel, run the following command:
jmc -nosplash -application org.eclipse.equinox.p2.director
-r http://download.eclipse.org/technology/babel/update-site/R0.10.1/juno
-i org.eclipse.babel.nls_eclipse_zh.feature.group
If you are behind a proxy, download the p2 repository
ZIP file using a web browser with a working proxy configuration. Then run the command above, replacing the repository URL with the jar:file:
URL of the downloaded ZIP file and a "!/juno/"
suffix. See the following examples:
On Windows, to install Japanese support from the p2 repository
downloaded to C:\temp
directory, run the following command:
jmc -nosplash-application org.eclipse.equinox.p2.director
-r jar:file:/C:/temp/babel-R0.10.1-juno.zip!/juno/
-i org.eclipse.babel.nls_eclipse_ja.feature.group
On Linux and OS X, the exclamation mark (!) needs to be escaped from the shell. To install Chinese support from the p2 repository downloaded to /tmp, run the following command:
jmc -nosplash -application org.eclipse.equinox.p2.director
-r jar:file:/tmp/babel-R0.10.1-juno.zip\!/juno/
-i org.eclipse.babel.nls_eclipse_zh.feature.group