This chapter provides an overview of Java Mission Control and its features.
Java Mission Control enables you to monitor and manage Java applications without introducing the performance overhead normally associated with these types of tools. It uses data collected for normal adaptive dynamic optimization of the Java Virtual Machine (JVM). Besides minimizing the performance overhead, this approach eliminates the problem of the observer effect, which occurs when monitoring tools alter the execution characteristics of the system.
Java Mission Control consists of the client application (JMC client) and a number of plug-ins that run on it:
JVM Browser shows the running Java applications and their JVMs. Each JVM instance is called a JVM Connection.
JMX Console connects to a running JVM, collects and displays its characteristics in real time, and enables you to change some of the runtime properties through Managed Beans (MBeans). You can also create rules that trigger on certain events (for example, to send an email if the CPU usage by the application reaches 90 percent).
Java Flight Recorder (JFR) collects and saves detailed performance characteristics for historic analysis and profiling. It can be used as a standalone performance monitoring and profiling tool, but when used as a plug-in for the JMC client, it presents diagnostic information in logically grouped tables, charts, and dials. It enables you to select the range of time and level of detail necessary to focus on the problem.
Java Mission Control plug-ins connect to a JVM using the Java Management Extensions (JMX) agent. For more information about JMX, see the Java Management Extensions documentation at