Java Mission Control is a tools suite for monitoring, managing and profiling Java applications running in production. It is free for development! This forum is mainly for the Java Mission Control Client. If you have questions about the JVM parts (for instance Java Flight Recorder), you can probably get a good answer here as well.
Here is a list of resources you may want to consult when you have questions regarding Java Mission Control:
1. There is help included in Java Mission Control. The Mission Control FAQ included in the help is very useful for trouble-shooting common problems.
2. This FAQ.
3. If you own Java Mission Control, Oracle Support will help out.
4. Posting questions to this forum is usually a good idea; it is actively monitored by the developers.
5. This blog regularily posts on Mission Control related topics: http://hirt.se/blog/?cat=3.
6. The official twitter handle is @javamissionctrl. Also, @hirt often posts JVM and Mission Control related information.
7. The old JRockit forum contains plenty of posts related to the old JRockit Mission Control product. A lot of the information is still relevant.
8. There is even a Facebook community page.
JMC Q&A
Q: I cannot see any locally running JVMs in the JVM browser!
A1: Are you running in Eclipse? If so, make sure you run your Eclipse on a JDK, NOT a JRE!
A2: You should have a directory named hsperfdata_<user> in your tmp directory, where <user> is your login. (On windows you should be able to find this folder under C:\Users\myuser\AppData\Local\Temp\hsperfdata_myuser.) Make sure that the directory can be written to. Also make sure that you are using a file system that supports ACLs.
A3: Double check the JAVA_HOME/lib/missioncontrol/jmc.ini file, the line after '-vm' should not be empty, but say './' (without the quotes). If you see this behavior, please write a post in this forum, so we can get gain some more understanding of this weird issue.
Q: I cannot access the Flight Recorder!
A1: Make sure you are trying to connect to a 7u40 or later.
A2: Make sure you have started the JVM you are trying to start recordings on with the proper flags: -XX:+UnlockCommercialFeatures -XX:+FlightRecorder
Q: How do I install the Eclipse version?
A: Install Eclipse, then install the plug-ins from the update site. See http://oracle.com/missioncontrol. Don't forget to also add the Experimental Update Site, for additional plug-ins.
Q: I want to connect to my 64-bit JVM from a 32-bit Mission Control (or vice versa)
A: Start the JMX agent on your JVM by adding the JVM flag -Dcom.sun.management.jmxremote
Q: I've installed the latest JDK on Mac OS X, but I cannot find Java Mission Control
A1: Locate jmc with find /Library/Java -name jmc. Probably a path like /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/jmc. Start by invoking the jmc found from the terminal.
A2: Use Finder to browse to /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/lib/missioncontrol, double-click the Java Mission Control app.
A3: Install the latest Apple Java update to get the /usr/bin/jmc shortcut.
Q: JMC on Mac OS X does not seem to start anymore.
A: Try removing your ~/.jmc folder. (If you still see this with JMC 5.3.0 or later, please let us know.)
Q: Why are there no I/O events in my JFR recording?
A1: Was the recording done with JDK 8u0? The I/O events are not included in JDK 8 GA. They exist in JDK 7u40, and were reintroduced in the JDK 8u20 release.
A2: Did you disable the I/O events in your template?
Q: I've installed plug-ins in the JMC application, why can't I use them?
A: If you're using JMC 5.3, see the JMC 5.3 Release Notes for a work around. This should not happen in 5.4.0 or later.
Q: Why do I get a lot fewer method samples then I expected?
A1: There's a bug in 7u60 (Linux only) that results in a large reduction of method samples. It's been fixed 7u71 and 8u20.
A2: By default, method samples are only taken at safepoints. Use -XX:UnlockDiagnosticVMOptions -XX:DebugNonSafepoints to enable some more method samples. (Will be default in later release)
A3: Flight Recorder does not sample threads that are running native code.
Q: JMC 5.2 crashes in libsoup when I run on Linux, how can I avoid this?
A: See Java in the Middle. : Java Mission Control (jmc) Crashing: SIGSEGV at C [libsoup-2.4.so.1+0x6dab1] soup_session_featur…
Q: JMC crashes or hangs on Linux
A: This can be a known JavaFX/GTK related issue (https://bugs.openjdk.java.net/browse/JDK-8089584), try setting this environment variable: SWT_GTK3=0
Q: Error message "Could not start JDP. Can't assign requested address"
A: Workaround: add "-Djava.net.preferIPv4Stack=true" to the JVM flags used to start JMC or Eclipse.
Q: I cannot connect
A: Consider the following:
- Are you using the correct protocol?Ensure that you are using the same version of the JVM that you want to monitor as is being used by the JVM running the JMC client.The format of the service URL is:
service:jmx:rmi:///jndi/rmi://<hostname>/jmxrmi - Are the correct ports opened?Note that running JMX over RMI requires two ports and that one of the ports will not be known beforehand.
- Is the communication caught in a firewall?For more information, see "Java Mission Control Communications" in the Introduction to Java Mission Control on the Oracle Technology Network.
Q: When attempting to connect to a JVM, I get a stack trace indicating that the JVM attempts to communicate with a strange IP or host name. What does this mean?
A: Sometimes RMI can have a problem determining which address to use. This can happen because of any of the following:
- There are access restrictions in the Security manager.
- The machine is multihomed and RMI is selecting the wrong interface.
- There is 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 on the JVM you are trying to connect to. Note that this can affect applications running on that JVM.
Q: I am getting exceptions during startup about classes not being found. What is wrong?
A: Ensure that you are using JAVA_HOME/bin/jmc to start the JMC client.
Q: Why does Java Mission Control fail to find any local JVMs?
A: Consider the following:
- Make sure that you are using
JAVA_HOME/bin/jmc
to start the JMC client. - If you are running JMC from Eclipse, make sure that Eclipse is running on a JDK (not JRE).
- Make sure that there is a directory named
hsperfdata_username
in the system's tmp
directory, that it is writable by the user running JMC, and that the file system supports access control lists (ACLs).
Also, see the last chapter in the documentation included with JMC.