Visit Azul.com Support

Azul Mission Control 9.1.0

February 20, 2025

Azul Mission Control is a fully-tested build of JDK Mission Control open-sourced by Oracle and managed as a project under the OpenJDK umbrella.

Community builds of Azul Mission Control are free to download and use without restrictions.

What’s new

This is the February 2025 release of Azul Mission Control.

Azul Mission Control 9.1 requires JDK 21+ to run and introduces several new features, enhancements, and bug fixes. This version continues to support connecting to, and parsing JFR recordings from JDK 7u40 and later, and can open and visualize flight recordings from JDK 7 and 8. Azul Mission Control is available for Windows (x86_64), Mac OS X (ARM and x86_64), and Linux (x86_64).

General Improvements

Eclipse 4.34 Support

The Mission Control client is now built to run optimally on Eclipse 2024-12 and later. To install Azul Mission Control into Eclipse, go to the update site (Help | Install New Software…).

Support for Jolokia JMX Connection and Discovery

Azul Mission Control now supports connecting to JVMs using Jolokia, and also supports Jolokia’s auto discovery mechanism.

Minor Bugfixes and Improvements

There are 64 fixes and improvements in this release.

Azul Mission Control Core Improvements

API to Easily Write Annotated Java JFR Events

The JFR Writer API has been extended with the ability to use the custom JFR event types (i.e. classes extending jdk.jfr.Event) and register a new writer type for them and also directly accept the instances of those types to write them in the recording.

Allow Primitive Types in Converters

Previously, a converter could not be used to convert from a primitive type like long. This capability can, for example, be useful to convert a timestamp of type long into a human-readable string.

Rule to Detect Java Process with PID 1

PID 1 is treated specially in Linux, and it is assumed to be used by the init process. The init process has some additional responsibilities, such as assuming the responsibility for orphaned processes. The init process is assumed to never quit, and e.g. any signal handler registered for SIGSEV will not be run. This can be problematic, even when running in containerized environments. The rule will detect if this is the case, and propose a path to fixing it (e.g. using tini).

Improved Halt Rule Result

The halt rule will now show a table of the top 5 thread halting VM operations.

Better Descriptions for the Code Cache Rule

The descriptions for the code cache rule have been improved, highlighting what the effects of a full code cache can be and what actions to take to increase the size of the code cache.

Added Support for the New Allocation Profiler in Rules

The following rules have been updated to be able to use the new ObjectAllocationSample events: AllocationByClassRule, AllocationByThreadRule, AutoBoxingRule.

Java Flight Recorder (JFR)

Displaying long Value in Scientific Notation

The TLSHandshakeEvent.java records "Certificate Id" as a long value, and Azul Mission Control was showing it in scientific notation. This was also true for process identifiers. This has now been fixed.

Showing RSS

Azul Mission Control will now show the resident set size (RSS), both on the memory page as well as the Java application page. The RSS can for example be helpful when trying to determine if there is a native memory leak or heavy native memory fragmentation occurring. The RSS graphs can be toggled on and off using the check box legends to the right of the graphs.

rss

Showing Thread Counts

Azul Mission Control will now show thread counts on the Java application page. This can, for example, be useful when trying to determine if there is a thread leak. The thread count graphs can be toggled on and off using the check box legends to the right of the graphs.

threadcounts

Thread ID on Hover

In the threads page, hovering over a thread name will show the threadid in the tooltip.

threadid

Fixed Issues

Issue ID Description

JMC-8306

Missing plug-ins while installing JMC in an Eclipse IDE

JMC-8295

Shutdown event type id was not properly translated for Oracle JDK 8

JMC-8287

Fix the JMX protocol extenders

JMC-8303

NPE when running jfr rules reports

JMC-8248

Low contrast for the stacktrace view when running in windows high contrast mode

ZMC-154

ZMC 9.1 uses .jmc userdir instead of .zmc

ZMC-155

Zing Live Objects info is not displayed in ZMC 9.1

Known Issues

Issue ID Description

JMC-7071

JMC can’t attach to jlinked JVMs

JMC-7003

The graph view, heatmap view and dependency view does not work on Windows

ZMC-156

ZMC 9.1 can’t start on Windows when installed in long path

Postponed Issues

These are postponed until future releases.

Issue ID Description

ZMC-157

Build of ZMC 9.1 for linux-aarch64

Installation Instructions

If you get an alert that states A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run or Failed to create the Java Virtual Machine, you need to update your Java runtime.

Azul Mission Control 9.1.0 and newer, requires OpenJDK 17 and later. However, it supports Java Management Console (JMX) monitoring and Java Flight Recorder (JFR) profiling of JVMs (JDK 7u40 and later) on any supported platform.