IBM MQ and OpenJDKs

On Monday, Peter Potkay asked a simple question on the MQ List Server:

Does IBM support any version of OpenJDK, from any vendor, for use with IBM MQ Clients, specifically the Resource Adapter?

Tim McCormick of IBM responded with:

The full list of supported JREs are listed in the MQ system requirements here: https://www.ibm.com/support/docview.wss?uid=swg27006467

Specific link for 9.1 LTS: https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=B560B760819A11E6B5854315721876AE&duComponentIds=A006

At this time we only support IBM and Oracle implementations.

Now that is the official line from IBM because they have not gone through the selection and testing of an OpenJDK implementation but since Oracle JDK and OpenJDK are 99% the same, I think IBM may give companies some leeway.

Here was my response to Peter’s question (and yes, you can say, Roger tell us how you REALLY feel).

Your question, although a clear answer should be simple, there are so many moving parts, you just end up banging your head against the wall.

Right off the top, I would like to thank Oracle for their greed which created this problem!!!!!!

Sun Microsystem said 13 years ago that they would open source Java and it would be free. When Oracle purchased Sun Microsystem, they said they would honor Sun’s promise to the Java community. Well, that last about 8 years. Last Summer, Oracle said f-u to the world and said if you want to use Oracle’s JRE and/or JDK, you need to pay (for both desktops and servers). Period. No exceptions.

Now Oracle’s JRE & JDK are 99% the same as OpenJDK. I haven’t found any differences between the 2 JDK’s (or JREs) but I write desktop applications and not Java back-end servers. See here: https://jaxenter.com/oracle-jdk-builds-openjdk-builds-difference-149318.html

I switched to AdoptOpenJDK. The primary reason I switched to it is because IBM is behind it!!!

A Java Enterprise Edition (Java EE) is built on top of a JDK. The current version of Java EE is 8. For a Java server to be considered to be a Java EE server, it has to implement a bunch of specifications. A Java server can be Java EE certified for 1 specification or all specifications for Java EE. If you go to wiki page on Java EE and scroll down to “Certified referencing runtimes”, you will see that JBoss is fully certified for Java EE 8 (and Java EE 7 too).

And now back to the “MQ Resource Adapter”. IBM’s web page on MQ Resource Adapter, says that the Java server you use must be certified for JCA v1.7 and JMS 2.0. For MQ v8 and v9, the Java server must be Java EE 7 certified.

So, as long as the version of the JBoss server you are running is Java EE 7 or 8 certified and you are using OpenJDK 8 or higher (which is the same as Oracle JDK 8 or higher), then you should be on a supported footing.

So, that’s my 2 cents.

Oh yeah, Oracle, here’s another 2 cents, you are a greedy, greedy, greedy, ………………. company.

Here is more that I did not put in my response to Peter’s question, Oracle not only screwed over Java users/customers but I know of 1 company that was forced to close!!!!

Excelsior LLC is (was) a 20 year old company that created and sold Excelsior Jet. Excelsior Jet is a compiler that compiles Java code to native code (executable). Excelsior LLC officially licensed the JDK/JRE from Oracle. Excelsior Jet was available for Windows, Linux, macOS and ARM (Linux & Windows).

Last year, Oracle changed the licensing of the Oracle JDK & JRE that would take effect in 2019. Monthly fee of $25.00 per server processor and $2.50 per desktop. Greedy, Greedy, greedy!!!

Now, if Excelsior LLC wanted to keep using the licensed Oracle JDK/JRE code then they would need to collect those monthly fees from the end-customers which are really the customers of their customers. i.e. Capitalware being a customer of Excelsior Jet would have to collect those monthly fees from all of our customers and give that money to Excelsior LLC, who then would give it to Oracle. What a lovely process.

Knowing how greedy Oracle is, I would even guess that they probably increased the licensing fees that Excelsior LLC had to pay them. Note: That is only a guess on my part but probably a reasonable guess.

Last October 31, 2018, announced a beta of Excelsior Jet 15.3 (officially released in November 2018) and the switchover to OpenJDK. That was great news, now Excelsior LLC customers (i.e. Capitalware) wouldn’t have to worry about chasing our customers for Oracle’s new licensing fees.

But the good news was short lived. On May 15, 2019, I received an email from Excelsior LLC saying that they were exiting the JVM business and shutting down.

There is a lot of speculation on Reddit, forums, etc. on why Excelsior LLC decided to shutdown. Most of it centers on Oracle’s GraalVM. While it could be the case, I seriously doubt it for 2 reasons:

  • Before GraalVM there was GCJ (GNU Compiler for Java). Excelsior LLC survived and thrived when GCJ existed, so Excelsior LLC should do the same with the existence of GraalVM.
  • Follow the money or more specifically, follow the licensing!!

    What do I mean by “follow the licensing”? Before Excelsior Jet 15.3, Excelsior LLC licensed the Oracle JDK/JRE from Oracle (Sun Microsystems before that). Last fall, Excelsior Jet switched to OpenJDK for Excelsior Jet 15.3. OpenJDK is licensed under GPL with the classpath exception. So, if Excelsior LLC wanted to stay on the right side of the law, they would have to publish their code when OpenJDK was included in Excelsior Jet 15.3 but they did not.

    So, I’m guessing that someone or company (probably Oracle) served Excelsior LLC with a legal notice that they are in violation of the terms of GPL.

    I do not know why Excelsior LLC did not just simply go the open source subscription route and publish their code. Maybe they were using proprietary code that could not be open sourced or just did not like the concept, I do not know. All I know is that this REALLY sucks!!!! I’ve been using Excelsior Jet for more than 7 years and have been a very happy user.

    The Laurel & Hardy quote is running through my head about Oracle:

    Well, here’s another nice mess you’ve gotten me into.

    In case I didn’t mention it before, Oracle is a greedy, greedy, greedy, …… company.

    Finally, I’ll check IBM MQ RFEs and if nobody has opened one for the support of OpenJDK then I’ll open it and request that AdoptOpenJDK be supported, since IBM is a backer of it.

    Regards,
    Roger Lacroix
    Capitalware Inc.

  • This entry was posted in IBM MQ, Java, Linux, macOS (Mac OS X), Programming, Unix, Windows.

    One Response to IBM MQ and OpenJDKs