What's new in version 0.24.0
The following new features and notable changes since version 0.23.0 are included in this release:
- New binaries and changes to supported environments
- Changes to message logging
- Support for the
JAVA_OPTIONSenvironment variable -XX:[+|-]PortableSharedCacheoption support update
-XX:[+|-]ShareAnonymousClassesoption behavior update- Additional parameters for
jcmd Dumpcommands - Change in behavior for the
jextractutility - New diagnostic suboption for
-Xcheck:jnifor fatal JNI errors - Improved diagnostic information in a Java dump file on processor features
- Helm chart available for deploying JITServer
Features and changes
Binaries and supported environments
Eclipse OpenJ9™ release 0.24.0 supports OpenJDK 8, 11, and 15.
Windows® builds for Java™ 8 are now compiled with Microsoft® Visual Studio 2013. The Visual Studio redistributable files included with the build are updated to match.
To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.
Changes to message logging
JEP 158 introduces the -Xlog option as a common logging system for all components of a Java virtual machine. To avoid confusion with the reference implementation, the -Xsyslog option replaces the existing OpenJ9 -Xlog option for message logging. For compatibility with the reference implementation, a limited set of -Xlog suboptions are supported.
A new option, -XX:[+|-]LegacyXlogOption, controls how -Xlog is processed when set on the command line.
- When
-XX:-LegacyXlogOptionis set, the-Xlogoption is recognized when a form of this option runs that requests garbage collection (GC) logging.- If any
-XlogGC log requests are set, these options are mapped to the equivalent OpenJ9 verbose GC command line options. For more information, see-Xlog.
- If any
- Setting
-XX:+LegacyXLogOptionprovides backward compatibility with the legacy-Xlogoption, which can be specified on the command line with the parameters documented for the-Xsyslogoption. That is, these options can be used interchangeably. If you rely on the legacy-Xlogoption and cannot easily migrate to the-Xsyslogoption, you must set this option on the command line.
Support for the JAVA_OPTIONS environment variable
For compatibility with the reference implementation, OpenJ9 now supports the JAVA_OPTIONS environment variable. This environment variable can be used to set command line options, as described in OpenJ9 command-line options and Environment variables. Options specified by JAVA_OPTIONS can be overridden by options specified by OPENJ9_JAVA_OPTIONS.
-XX:[+|-]PortableSharedCache option support update
The -XX:[+|-]PortableSharedCache option is now supported on IBM Z® and POWER® platforms. AOT-compiled code that is generated with this option is guaranteed to be portable across IBM z10 or newer microarchitectures on IBM Z platforms and IBM POWER8® or newer microarchitectures on POWER platforms. See -XX:[+|-]PortableSharedCache for more details about this option.
-XX:[+|-]ShareAnonymousClasses option behavior update
In earlier releases of OpenJ9, the -XX:[+|-]ShareAnonymousClasses option enables or disables the storage of VM anonymous classes in the shared classes cache. From OpenJ9 0.24.0 for OpenJDK 15 binaries, this option also controls the storage of hidden classes. See -XX:[+|-]ShareAnonymousClasses for more details about this option.
Additional parameters for jcmd Dump commands
You can now include additional parameters for jcmd Dump commands as indicated in the following list:
Dump.system,Dump.heap,Dump.java, andDump.snapaccept an optionalrequest=<requests>parameter.Dump.heapaccepts an optionalopts=<options>parameter.
These parameters, including the <file path> parameter, can be in any order. The default for both system and heap dumps is now: request=exclusive+prepwalk. For further details, refer to the following -Xdump suboptions: request=<requests> and opts=<options>. For more information about jcmd, see Java diagnostic command (jcmd) tool.
Change in behavior for the jextract utility
The jextract utility gathers relevant files following a system dump to assist with problem determination. It is important that the jextract utility is run from the same SDK that generated the dump. From this release, if the build ID of the jextract utility does not match the build ID of the SDK that is recorded in the system dump, an exception message is generated. To force jextract to continue, a new option, -r, is introduced. For more information, see Dump extractor.
New diagnostic suboption for -Xcheck:jni for fatal JNI errors
A new abortonerror suboption for -Xcheck:jni provides diagnostic data when fatal JNI errors occur. For more information, run -Xcheck:jni:help.
Improved diagnostic information in a Java dump file on processor features
The ENVINFO section of a Java dump file now includes further information about processor features. This information helps to diagnose problems associated with JIT and AOT compilations that depend on underlying hardware. For an example that shows the information provided when JIT is enabled, see the CPU Information (2CIJITFEATURE,2CIAOTFEATURE) section in the Java dump topic.
Helm chart available for deploying JITServer
A Helm Chart is now available for easier deployment of JITServer technology in a Kubernetes or OpenShift cluster. You can find the chart (openj9-jitserver-chart) in the JITServer Helm repository, which contains a complete set of usage instructions. For an introduction to JITServer technology, see JITServer (tech. preview).
Full release information
To see a complete list of changes between Eclipse OpenJ9 version 0.23.0 and version 0.24.0 releases, see the Release notes.