Service refresh 8

Read about the changes in service refresh 8, and subsequent fix packs.

Skip to Service refresh 8 fix pack 5.

Skip to Service refresh 8 fix pack 6.

Skip to Service refresh 8 fix pack 10.

Skip to Service refresh 8 fix pack 11.

Skip to Service refresh 8 fix pack 15.

Skip to Service refresh 8 fix pack 20.

Skip to Service refresh 8 fix pack 21.

Skip to Service refresh 8 fix pack 25.

Service refresh 8

This release contains IBM and Eclipse OpenJ9 fixes, the most recent Oracle Critical Patch Update (CPU), and the following new features:

  • IBM security features, as listed in Security guide.
  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.36.0 OpenJ9 user documentation.
  • Other SDK features, as listed in the following sections.
Other SDK features
New operating system and hardware support

The following operating systems are now supported:

  • Red Hat® Enterprise Linux® 8.7
  • Red Hat Enterprise Linux 9.1

For more details, see Supported environments.

Service refresh 8 fix pack 5

Fix pack 5 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following new features:

  • IBM security features, as listed in Security guide.
  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.37.0 and Version 0.38.0 OpenJ9 user documentation.
  • Other SDK features, as listed in the following section.
  • IBM documentation features as listed in the following section.
Other SDK features
The RDMA implementation is deprecated
The RDMA implementation is deprecated and will likely be removed in a future release of IBM SDK, Java™ Technology Edition, Version 8. A possible alternative is the open source Libfabric library.
IBM Documentation features
Change in process to download IBM SDK documentation
To download the IBM SDK documentation for offline viewing, use the IBM Documentation Offline process. This new method of viewing documentation offline supersedes the Eclipse software site and PDF files methods, described in the "Downloadable documentation" topic alongside the user guides.

Service refresh 8 fix pack 6

Fix pack 6 includes the latest IBM fixes, and the following OpenJ9 fix:
JVM updated to detect control group v2 settings
The JVM is updated to correctly detect the control group's settings. This allows the JVM to set the precise upper memory limit and function within this limit. Further, this stops the operating system's OutOfMemory (OOM) killer from terminating the JVM in a containerized environment.

Service refresh 8 fix pack 10

Fix pack 10 contains the latest IBM fixes, the most recent Oracle Critical Patch Update (CPU), and the following new features:

  • IBM security features, as listed in Security guide.
  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.40.0 OpenJ9 user documentation.
  • Other SDK features, as listed in the following section.
Other SDK features
New operating system and hardware support
The following operating systems are now supported:
  • Red Hat Enterprise Linux 8.8
  • Red Hat Enterprise Linux 9.2

For more information, see Supported environments.

Support for persistent shared class cache added on z/OS
Persistent shared caches are now supported on z/OS systems. The default cache type on z/OS is still nonpersistent. You can use the -Xshareclasses:persistent option to switch to persistent shared cache. For more information, see the -Xshareclasses topic in OpenJ9 documentation.

Service refresh 8 fix pack 11

Fix pack 11 includes the latest IBM fixes, and the following new features:

SDK features
New operating system and hardware support
The following operating systems are now supported:
  • z/OS 3.1

For more information, see Supported environments.

Support for GB18030-2022
The China National Standard body, CESI, has published GB18030-2022, which is an updated version of the GB18030 standard and brings GB18030 in sync with Unicode version 11.0. The Charset implementation for this new standard has now replaced the prior 2000 standard. However, this new standard has some incompatible changes from the prior implementation. If you need to use the old mapping, use the new system property jdk.charset.GB18030. Set the value of this property to 2000 to use the older mappings for the GB18030 Charset, which are based on the 2000 standard.

Also, some enhancements are made to allow more characters for GB18030-2022 support. The purpose of the enhancement is to incorporate 35 code points (from U+9FCD to U+9FEF) from Unicode 11.0 into Java 8 to allow implementations to comply with their Implementation Level 1 requirements. For more information, see JDK-8301400.

Service refresh 8 fix pack 15

Fix pack 15 includes the latest IBM fixes, and the following new features:

  • IBM security features, as listed in Security guide.
  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.41.0 OpenJ9 user documentation.
  • Other SDK features, as listed in the following section.
Other SDK features
Updated operating system support

The following operating system is now supported:

  • SUSE Linux Enterprise Server (SLES) 15 SP5

For a list of supported hardware and operating systems, see Supported environments.

Service refresh 8 fix pack 20

Fix pack 20 includes the latest IBM fixes, and the following new features:

  • IBM security features, as listed in Security guide.
  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.42.0 and Version 0.43.0 OpenJ9 user documentation.
  • Other OpenJ9 features, as listed in the following section.
Other OpenJ9 features
Change in behavior of the -Djava.security.manager system property
From OpenJDK version 18 onwards, if you enable the SecurityManager at runtime by calling the System.setSecurityManager() API, you must set the -Djava.security.manager=allow option. To disable the SecurityManager, you must specify the -Djava.security.manager=disallow option. If an application is designed to run on multiple OpenJDK versions, the same command line might be used across multiple versions. Because of this use of the same command line across multiple versions, in OpenJDK versions before version 18, the runtime attempts to load a SecurityManager with the class name allow or disallow resulted in an error and the application was not starting. To resolve this issue, OpenJDK version 17 ignores these options. With this release, OpenJDK versions 8 and 11 also ignore the allow and disallow keywords, if specified.
  • Other SDK features, as listed in the following section.
Other SDK features
Updated operating system support

The following operating system is now supported:

  • Red Hat Enterprise Linux 8.9
  • Red Hat Enterprise Linux 9.3

For a list of supported hardware and operating systems, see Supported environments.

InstallAnywhere packages are discontinued
InstallAnywhere (.bin and archive.bin) packages of IBM SDK, Java Technology Edition are discontinued from this release. On Linux systems, you can install the SDK from an RPM package or extractable tarballs. On AIX systems, you can continue to use the installp packages or use the extractable tarballs.
Support available for IBM z/OS Container Platform image (z/OS only)
The container image for IBM SDK, Java Technology Edition for z/OS is available in IBM container registries. You can pull the IBM Java 8 z/OS container image to start using the SDK. You can verify the image by using the cryptographic hash. Images are also signed, and you can verify the signature. For more information, see IBM z/OS Container Platform image (z/OS only).

Service refresh 8 fix pack 21

Fix pack 21 includes the latest IBM fixes, and the following new feature:

  • Other OpenJ9 features, as listed in the following section.
Other OpenJ9 features
New -XX:[+|-]CpuLoadCompatibility option added
The getProcessCpuLoad() and getSystemCpuLoad() methods were returning -1 to indicate that the recent CPU usage is not available when these methods were called in OpenJ9 for the first time. It was difficult to identify whether the reason for the -1 value was an error or because the call was the first call and therefore, no recent CPU usage was available.

In OpenJDK, these methods return 0 value in the case of the first call, which makes it easier to differentiate between the first call behavior and an error that needs further investigation.

The -XX:+CpuLoadCompatibility option is used to enable the OpenJDK behavior of the getProcessCpuLoad() and getSystemCpuLoad() methods in OpenJ9 so that these methods return 0 when called in OpenJ9 for the first time.

For more information, see -XX:[+|-]CpuLoadCompatibility.

Service refresh 8 fix pack 25

Fix pack 25 includes the latest IBM fixes, and the following new features:

  • Features from the latest Eclipse OpenJ9 release, as listed in the Version 0.44.0 OpenJ9 user documentation.
  • Other SDK features, as listed in the following section.
Other SDK features
Discontinuation of IBM SDK, Java Technology Edition, version 8.0 on selected platforms

IBM SDK, Java Technology Edition, version 8.0 will be discontinued on the following platforms reaching end of support:

  • Linux on IBM Power Big Endian (BE) 32-bit - effective July 2024
  • Linux on IBM Power Big Endian (BE) 64-bit - effective July 2024
  • Linux on IBM Z 32-bit - effective May 2025

Linux on IBM Power Big Endian (BE) is currently supported ONLY by RedHat Enterprise Linux (RHEL) 7, which is reaching end of support by June 2024. Hence, IBM SDK, Java Technology Edition, version 8.0 will discontinue support for Linux on IBM Power Big Endian platforms (both 32-bit and 64-bit architectures) starting July 2024.

Linux on IBM Z 32-bit is currently supported by RedHat Enterprise Linux (RHEL) 7, SuSe Linux Enterprise Server (SLES) 12, and Ubuntu 20. Following are the end of support dates for these platforms:
  • RedHat Enterprise Linux (RHEL) 7 - June 2024
  • SuSe Linux Enterprise Server (SLES) 12 - Oct 2024
  • Ubuntu 20 - April 2025
Hence, IBM SDK, Java Technology Edition, version 8.0 will discontinue support for Linux on IBM Z 32-bit platform starting May 2025.

‘End of support’ in this announcement means that no release binaries or packages will be produced for the IBM SDK, Java Technology Edition, version 8.0 on these platforms after the specified dates and no support will be provided (including interim fixes in support cases).

Change in the encoding of java.util.properties file

All properties files or InputStreams that are loaded by using the API java.util.Properties.load(java.io.InputStream) must be encoded by using the following code pages:

  • Distributed (non-z/OS) platforms - ISO 8859-1
  • z/OS - ISO 8859-1 or IBM-1047

This change in behavior is necessary to ensure correct and consistent parsing of properties files. The previous behavior of falling back to the platform default encoding (defined by the file.encoding system property) for non-ASCII encodings can cause problems because the platform default encoding might not be appropriate for all properties files an application needs to read. Different code pages have different mappings between characters and byte values, and given a raw InputStream it is impossible to distinguish between these encodings to choose the correct code page. This is especially true for EBCDIC code pages, where there are many small (but significant) differences in the mappings for common punctuation characters.

You continue to use properties files which are encoded using a different code page but application changes are required.

If an application loads properties files directly, you can load the properties file to use a different code page by using java.util.Properties.load(java.io.Reader). Unlike the java.util.Properties.load(java.io.InputStream) API, the variant that uses a java.io.Reader parameter allows the encoding to be specified explicitly by constructing and passing in a suitable java.io.InputStreamReader instance.