IBM Clarifies Java Options Following Oracle License Crackdown
April 3, 2019 Alex Woodie
IBM i shops that are wondering how to maintain their Java environments following Oracle’s recent decision to restrict access to Java runtimes and development tools should pay close attention to some recommendations that IBM is making concerning Java, particularly how it impacts Access Client Solutions (ACS).
Oracle is slated to ship a critical security update for Java Standard Edition (SE) 8 in a week and a half. But unless you have bought a commercial license for Java SE 8, your business won’t be getting that update, which could leave your systems vulnerable. That’s because in late 2018, Oracle made some rather large changes to the way customers will receive patches and updates for the aging Java environment.
Consumers who run Java SE 8 on their home computers or other personal uses can continue to receive periodic updates and security patches for the runtime environment, according to Oracle’s new rules. But companies who use the Java SE 8 runtime will have to pony up the cash if they want to keep their systems free of security vulnerabilities, according to Oracle.
“Public updates for Oracle Java SE 8 will remain available for individual, personal use through at least the end of 2020,” Oracle states on its Web page. “Public updates for Oracle Java SE 8 released after January 2019 will not be available for business, commercial or production use without a commercial license.”
The Redwood City, California, company made similar changes to version 11 of the Oracle Java Development Kit (JDK). Oracle says users “May not . . . use the programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your application.”
So what’s a Java user to do? Companies that want to maintain their older Java SE 8 environments can purchase a Java SE Subscription from the Oracle Store. The annual subscriptions start at $30 per user for desktop support, $300 per processor for server and cloud environments, and $1,200 per user for Java tools (including NetBeans, JDeveloper, and Enterprise Pack for Eclipse).
Oracle is being criticized for the changes to Java SE 8 and JDK 11 terms, with some users claiming that the changes constitute a trap for those who previously used Java SE in production without being asked to pay for it. “For 23 years, developers have downloaded the JDK from Oracle and used it for $free,” writes Stephen Colebourne on his Java blog. “Unless you read the text/warnings/legalese very carefully you might not even realize Oracle JDK is now commercial, and that you are therefore liable to pay Oracle for using this particular JDK in production.”
But enterprise customers who don’t want to pay Oracle do still have options. For starters, they can upgrade to newer versions of Java. Java SE 8 first debuted in 2015 and is currently in widespread use. But Java SE 8 also is considered to be a legacy release, with a newer and better release available, namely Java SE 11, which shipped in September and is considered a long term release (LTR). Java SE 12 shipped just last month, making it a bit green still for enterprises to use it. Besides, it’s not an LTR.
The matter is a bit complicated on the IBM i server, mainly because IBM has treated Java 8 as the go-to release of Java SE for a number of years (the Enterprise Version of Java was renamed Jakarta EE about a year ago). IBM decided to skip supporting Java SE versions 9 and 10 with the IBM i operating system itself, because they were not LTRs. That left Java SE 8 as the only game in town for IBM i, until IBM committed last year to support for Java SE 11 in the IBM i OS proper.
In March, IBM posted several recommendations on its support site for how IBM i users can navigate these changes to the Java licensing process, particularly as it relates to ACS, which is the company’s strategic client for accessing the IBM i operating systems. (Because it runs on Windows, Mac, and Linux desktops and not the IBM i OS itself, ACS can support other Java SE releases that IBM i does not.)
Customers who run ACS version 18.104.22.168 can upgrade to Java SE 11. IBM shipped that release of ACS late last year, which brought several new features in addition to support for Java SE 11.
However, the older version of ACS, 22.214.171.124, only supports Java SE versions 8, 9, and 10, but not Java SE 11. And because Java SE versions 9 and 10 are not LTRs and therefore are not being active supported (i.e. no security updates are coming from Oracle), that leaves Java SE 8 as the only viable option.
The solution recommended by IBM is to use OpenJDK, an open source Java development kit. “Oracle has been and is continuing to make their Java technology available under the open GPL license for OpenJDK and OpenJDK will work with IBM i Access Client Solutions,” IBM states in its support document.
IBM i shops have three main options for obtaining the OpenJDK.
The first option is to get the OpenJDK and the OpenJ9 JVM from AdoptOpenJDK The OpenJ9 JVM is based on the OpenJ9 technology that IBM contributed to open source back in 2017. (The name “J9” has nothing to do with Java SE 9 or any other Java version; the reason for the J9 nomenclature is covered here).
Secondly, IBM says there’s a “Hotspot” distribution of OpenJDK available from the OpenJDK website that features an Oracle JVM, according to IBM. IBM i shops choosing either one of these options can be assured that they will be maintained in a long-term manner, IBM says.
“These OpenJDK distributions [including the OpenJ9 JVM and the “Hotspot” OpenJDK distribution] are being built by a team that includes IBM and this team has committed to making fixes and security updates available in a timely manner for the long term at no charge under the OpenJDK licenses,” IBM states.
When it comes to supporting the OpenJ9 JVM available from the AdoptOpenJDK website, there are two main options, according to IBM: supporting oneself through the open source community, or purchasing a support agreement from IBM. IBM has two options for supporting the OpenJ9 JVM (what it calls IBM Runtimes for Business), including the older 5737-F61 offering and the newer 5737-J49 offering.
There is also a third OpenJDK option called Corretto, the name of a new project launched by Amazon Web Services in early 2019. IBM says there are Java SE 8 and Java SE 11 distributions available of Corretto available for Windows, Mac and Linux operating systems, all of which are supported by ACS. Support for this OpenJDK distribution obviously comes from AWS. But this distribution is not supported by any IBMers and IBM made no statements about how long customers can expect to receive updates for this product.
ACS is quite resilient to different Java environments, IBM says, but there are some particulars that IBM i shops should be on the lookout for, particularly for Java environments like OpenJDK that do not have wizards controlling installations.
Due to the varied nature of how different environments may choose to deploy Java, IBM i Access Client Solutions (IBM i ACS) is very flexible and the rest of this will discuss some of the options with launching IBM i ACS with various Java deployments. In its support document, IBM provided some tips on how to ensure a smooth roll-out of ACS in these varied Java environments.
For more information, see the IBM ACS and Java support document at www-01.ibm.com/support/docview.wss?uid=ibm10719405.