Upgrade comparison table

This section highlights changes between IBM SDK, Java Technology Edition, and IBM Semeru Runtime Certified Edition for z/OS 11 (Semeru 11).

New in Semeru 11

What's changing? Status How this affects you
IBM security providers:
  • IBMJCECCA provider
  • IBMJCEHYBRID provider
  • JAAS z/OS extensions
New Support is available.
IBMZSecurity provider New This security provider is enabled by default.

For more information, see Security guide.

Algorithms on the OpenJCEPlus provider:
  • HMAC-SHA3
  • SHA3
New Support is available.

Support for JEP 331

New Support is added in Eclipse OpenJ9, providing a mechanism for sampling Java heap allocations with a low overhead through the JVM Tool Interface (JVMTI).

For more information about the limitations, see Support for low-overhead heap profiling.

Reference implementation compatibility tools: New These tools are Eclipse OpenJ9 implementations and might differ in specific ways. In particular, these tools rely on the Attach API. To use these tools on z/OS systems, you must enable the Attach API.
zEDC (zEnterprise® Data Compression) Express® adapter

Integrated Accelerator for zEDC solution for z15™

New Support is available.

For more information, see zEnterprise Data Compression.

IBM security providers:
  • iKeyman utility
  • IBM Key Certificate Management utility
Coming soon Support is intended to be added in a later release.

For more information about the future of these components, see the IBM Semeru Runtime Certified Edition for z/OS, Version 11: Supplementary documentation technote.

Changed in Semeru 11

What's changing? Status How this affects you
Class libraries Changed This release contains class libraries from the OpenJDK project rather than proprietary class libraries that are licensed from Oracle.
XML implementation Changed The IBM implementation of XML is replaced with the OpenJDK implementation of XML.
IBM Security providers:
  • IBM JSSE2 provider
  • IBM JCE provider
  • IBM JCEFIPS provider
  • IBM JGSS provider
  • IBM Certification Path provider
  • IBM SASL provider
  • IBM JAAS provider
  • IBM SecureRandom provider
  • IBM PKCS11 provider
  • XML Digital Encryption
Changed These providers have been replaced with the OpenJDK security implementation.

For more information, see Comparable OpenJDK security providers.

JCERACFKS keystore implementation Changed The IBMZSecurity provider is added to provide the JCERACFKS keystore implementation. The following changes apply:
  • Key and certificate management: Use the zseckeytool utility in the IBMZSecurity provider.
  • RACF® key ring value: Specify by using safkeyringjce in the IBMZSecurity provider.
  • Class to handle the RACF key ring: This option is removed from zseckeytool utility, and is no longer necessary in the Cybersecurity provider.
  • RACF keystore function usage: To use the RACF keystore function, you must enable it by adding the IBMZSecurity provider to the default security provider list.

    For more information, see Enabling the IBMZSecurity provider topic under IBMZSecurity.

PKCS#11 capability Changed The SunPKCS11 provider is added to provide the PKCS#11 capability.

For more information, see PKCS#11 provider differences.

IBMJCEPlus cryptographic provider Changed This is renamed to OpenJCEPlus and is now the default provider.

OpenJCEPlus provider currently does not support the RSAPSS or XDH algorithms that are supported by the IBMJCEPlus provider in version 8 of the SDK.

For more information, see OpenJCEPlus provider.

Time zone data in the OpenJDK COMPAT locale provider Changed This is no longer overridden by IBM time zone data. Currently, the OpenJDK data does not include time zone name translations for the following locales, which did exist in the IBM data: ca, cs, hu, pl, ru, sk, sl, tr, and zh (the OpenJDK data does include translated time zone names for the zh_CN, zh_HK, and zh_TW locales). Minor differences in the time zone data might also exist compared with the previous release. You can use the java.locale.providers system property to specify the locale provider to use; the default value is CLDR, COMPAT.
Default transport protocol for the Health Center agent Changed This has been changed to jrmp, as support for RMI-IIOP APIs is removed from Java 11 as part of JEP 320. This default is specified by the com.ibm.java.diagnostics.healthcenter.agent.transport configuration property.

For more information about Health Center configuration, see Health Center configuration properties in the IBM Monitoring and Diagnostic Tools - Health Center documentation.

31-bit native C or C++ code with the 64-bit Java VM Changed The following paths are changed:
  • The JNI header file directory is changed from $JAVA_HOME/include31 to $JAVA_HOME/include/jni31.
  • The libjvm31.x side-deck file directory is changed from $JAVA_HOME/lib/s390x/j9vm to $JAVA_HOME/lib/j9vm.
Class data sharing Changed This is enabled by default only for bootstrap classes, which is the equivalent of specifying -Xshareclasses:bootClassesOnly,nonFatal,silent on the command line.

For more information, see Overview of class data sharing.

Default shared classes cache directory Changed The shared classes cache directory is now enabled by default.
Default maximum heap size Changed This is changed to be 25% of the available memory with a maximum of 25 GB. Where there is 2 GB or less of physical memory, the value set is 50% of available memory with a minimum value of 16 MB and a maximum value of 512 MB.
Heap memory for direct byte buffers Changed This is changed to 87.5% (7/8) of the maximum heap size.
String size:
  • 1 G char[]
  • larger StringBuffer
  • StringBuilder
Changed These immediately grow to the maximum size in this release, rather than growing to the size required to accommodate the String that is being added.
Trace formatter utility Changed This utility is now run in a different way.

See Trace formatter in the Eclipse OpenJ9 user documentation for more details.

-Xlog command Changed The -Xsyslog command replaces the operations run by the -Xlog command in IBM SDK, Java Technology Edition, Version 8.

For compatibility with the reference implementation, a new -Xlog command-line option is introduced that runs a subset of HotSpot -Xlog operations.

Shared libraries from /bin or /bin/j9vm directories Changed These are now located in the /lib directory. For applications that call JNI or JNI invocation APIs, the directory locations of libjvm.so and the libjvm.x DLL sidedeck file are updated to improve consistency with the reference implementation. The library search path (LIBPATH) must be updated to reference lib/j9vm or lib/server directories.
jextract (dump extractor tool) Changed This is replaced by the jpackcore tool.
javah (native header generation tool) Changed This is superseded by functionality in the Java compiler (javac).
Unicode Consortium's Common Locale Data Repository (CLDR) Changed This is now enabled as default locale data.
Java version string-format Changed If your application relies on identifying the format of the old string, you must update your code. For more information, see Version String Format.
Ductus Java 2D renderer Changed OpenJDK uses the Marlin renderer.
Kodak Color Matching System library Changed OpenJDK uses the Little Color Matching System (LCMS) open source library.

Removed in Semeru 11

What's changing? Status How this affects you
31-bit SDK package for z/OS Removed If your application uses 31-bit JNI libraries, you must port them to 64-bit JNI libraries.

For more information, see Porting Java applications to 64-bit systems.

System properties:

  • -Dcom.ibm.security. jurisdictionPolicyDir
  • ibmjcefw suboption for the -Djava.security.debug
Removed This property specified an alternative directory for security policy files, is removed.

When limited and unlimited jurisdiction policy files were moved to dedicated folders in version 8, this property became redundant and is therefore removed in this release.

For more information about these properties in version 8, see SDK Security policy files.

-Dcom.ibm.dbgmalloc=true system property environment variable, IBM_MALLOCTRACE=TRUE

Removed These properties have been removed.
IBM Object Request Broker (ORB) Removed The ORB relies on CORBA and RMI-IIOP, which were deprecated by Oracle in Java SE 9 and removed in Java 11.
Networking API (com.ibm.net (SocketKeepAlive)) Removed Use the Java SE 11 ExtendedSocketOptions class as an alternative to the networking API package (com.ibm.net (SocketKeepAlive)).
NIO Utilities API (com.ibm.nio (NioUtils)) Removed There are no known alternatives for this IBM API package.

Language management API (com.ibm.lang (Thread Properties))

Removed There are no known alternatives for this IBM API package.
Bidirectional support API (com.ibm.bidiTools) Removed Some bidirectional support is available in the java.awt and java.awt.font packages.

For more information, see the Working with Bidirectional Text tutorial.

Blocked connector interrupts API (com.ibm.jvm (InterrruptibleThread)) Removed There are no known alternatives for this IBM API package.
RDMA API (com.ibm.net.rdma) Removed The jVerbs library is removed.
T2K font rendering engine Removed OpenJDK uses the open source Free Type font rendering library.
Monotype Lucida fonts Removed There is no direct replacement.
Simple Network Management Protocol (SNMP) package Removed Use Java Management Extensions (JMX) or SNMP4J as an alternative.
Supported encoding code pages:
  • KZ-1048
  • PTCP154
  • x-IBM-udcJP
  • x-IBM1041
  • x-IBM1043
  • x-IBM1046S
  • x-IBM1047_LF
  • x-IBM1088
  • x-IBM1114
  • x-IBM1115
  • x-IBM1130
  • x-IBM1141_LF
  • x-IBM1164
  • x-IBM1351
  • x-IBM1362
  • x-IBM1363C
  • x-IBM1370
  • x-IBM1377
  • x-IBM1380
  • x-IBM1382
  • x-IBM1385
  • x-IBM1386
  • x-IBM1390A
  • x-IBM1399A
  • x-IBM16684A
  • x-IBM29626
  • x-IBM300A
  • x-IBM301
  • x-IBM33722A
  • x-IBM33722C
  • x-IBM420S
  • x-IBM4933
  • x-IBM808
  • x-IBM835
  • x-IBM836
  • x-IBM837
  • x-IBM859
  • x-IBM954C
  • x-ISO-8859-6S
  • x-KOI8_RU
  • x-IBM864S
  • x-IBM897
  • x-IBM924_LF
  • x-IBM927
  • x-IBM930A
  • x-IBM939A
  • x-IBM941
  • x-IBM947
  • x-IBM951
  • x-mswin-936A
  • x-UTF_8J
  • x-windows-1256S
Removed For a list of code pages that are available in OpenJDK 11, see Java 11 Internationalization guide: Supported Encodings. Note that only 172 character sets are shown, instead of 173. The missing character set is x-IBM29646C.
Downloads for 32-bit binary packages Removed If your application uses 32-bit JNI libraries, you must port them to 64-bit JNI libraries. For more information, see Porting Java applications to 64-bit systems.
String count field Removed substring() with a beginIndex value of zero can no longer be shared. If performance is significantly degraded because char[] data is now being copied, try reimplementing the code to avoid copying the String data.
-Xzero option Removed This was from a previous version of Java SDK.
Java EE and CORBA technologies:
  • java.xml.ws (JAX-WS, plus the related technologies SAAJ and Web Services Metadata)
  • java.xml.bind (JAXB)
  • java.activation (JAF)
  • java.xml.ws.annotation (Common Annotations)
  • java.corba (CORBA)
  • java.transaction (JTA)
Related modules:
  • java.se.ee (Aggregator module for the six modules listed previously)
  • jdk.xml.ws (Tools for JAX-WS)
  • jdk.xml.bind (Tools for JAXB)
Removed This was removed in accordance with Oracle JEP 320.

The JEP describes how you can access alternative solutions.

Java deployment technologies:
  • Java Plugin
  • Applet API
  • Applet View
  • Java WebStart
Removed This change is due to the lack of support in modern browsers for Java plug-ins, and the continuing trend for application developers to include a JRE with their applications, which can now be achieved by using the jlink functionality that was introduced in Java SE 9. For more information, see Oracle Java SE Support Roadmap.
JVMTI hprof agent Removed This was removed in accordance with Oracle JEP 240.
Java SE APIs:
  • java.util.logging.LogManager. addPropertyChangeListener
  • java.util.logging.LogManager. removePropertyChangeListener
Removed This was removed in accordance with Oracle JEP 162.

Consider coding the global LogManager to detect changes to the logging configuration by overriding the readConfiguration method.

Java SE APIs:
  • java.util.jar.Pack200.Packer. addPropertyChangeListener
  • java.util.jar.Pack200.Unpacker. addPropertyChangeListener
Removed This was removed in accordance with Oracle JEP 162.

To monitor the progress of the packer, poll the value of the PROGRESS property instead.

Java SE APIs:
  • java.util.jar.Pack200.Packer. removePropertyChangeListener
  • java.util.jar.Pack200.Unpacker. removePropertyChangeListener
Removed This was removed in accordance with Oracle JEP 162.
APIs:
  • sun.misc.BASE64Encoder
  • sun.misc.BASE64Decoder
Removed These APIs have been removed.

Note that other sun.misc and sun.reflect APIs are also planned for removal in future releases.

native2ascii (encoding conversion tool) Removed Java 9 and later releases support UTF-8 based properties resource bundles.