Don’t panic—IBM Runtimes for Business delivers enterprise-level support for open source Java
First, the not-so-good news: If you downloaded your Java SE binary from Oracle.com and are using it for commercial purposes, you may have heard that they’ve introduced a new pricing model. In addition to eliminating free commercial use, effective January 2019, Oracle.com will no longer provide free security updates to Java Version 8. This blog post—”Java licensing has changed, and you could be affected“—explains what’s changing and your options. Refer to the summary table below:
And now the good news: The Eclipse Foundation has a project delivering an alternative Java Virtual Machine, Eclipse OpenJ9, available at no cost from AdoptOpenJDK, even for commercial use. Those who depend on Java runtimes for their business may want to consider IBM’s new offering, IBM Runtimes for Business, which provides commercial support for open source Java runtime environments, plus monitoring capabilities for Java applications.
And even better news: The OpenJ9 code is the same code base used by the IBM SDK for Java since version 5.0, so you know it’s enterprise-ready. As an added bonus, OpenJ9 is faster and leaner than other JVMs.
Fast and lean Java is good—but by how much?
FASTER: The time before your transaction can be processed by a Java app is the start-up time. Reducing start-up time means more nimble elasticity in the cloud when you need more service resources quickly. It also means that if disaster strikes and the service terminates abnormally, your app needs less time to recover. From the viewpoint of a developer running Java on their laptop, reduced start-up time means more productivity since it shortens the code-deploy-run cycle.
After start-up time, the ramp-up time comes into play. Ramp-up time is the interval between when the start-up is complete and the steady-state where the application code is handling transactions at its maximum efficiency. There are tradeoffs between these two metrics, start-up and ramp-up time, that the JVM implementer has to consider. Your developers and admins can use command line options to give the JVM hints about the performance dynamic you prefer. For example, the
-Xquickstart command line option will tell the JVM to run with a subset of optimizations, which improves the performance of short-running applications, as is often the case for cloud-based services written in Java.
LEANER: CPU and memory aren’t free. The more you use, the higher the cost of the servers running your application suite. Based on benchmark tests with DayTrader3 (GitHub), OpenJ9 consumes less than half the memory of other JVMs. When the command line option
-Xtune:virtualized is enabled, the just-in-time (JIT) compiler reduces optimizations, which means less CPU demand for short-lived JVMs running in a CPU-constrained environment.
What happens next?
Nobody likes unexpected licensing fees or audits. Now is the time to understand how Oracle’s changes could affect your business. Check out the section Where can I find out more information? for a succinct list of Java runtime options and support. For even more “why and what” background information, see the Referencesbelow.
IBM and Java: Looking forward to the future (IBM Developer)
Free Java with paid support: The IBM perspective (IBM Developer)
OpenJDK with Eclipse OpenJ9: No worries, just improvements (IBM Developer)
Migration to Java 11 made easy (IBM Developer)
Oracle Java SE Subscription FAQ (Oracle)