This post is part of a series exploring the unique aspects and capabilities of WebSphere Liberty when running on z/OS.
We'll also explore considerations when moving from WebSphere traditional on z/OS to Liberty on z/OS.
To start at the beginning, follow this link to the first post.
The next post in the series is here.
---------------
Yes, there’s another copy of Liberty delivered as part of CICS. Last I heard you could choose to use the Liberty Embedded in z/OS with CICS, but there is still a copy included with CICS itself.
Why? Well, CICS added support for running a JVM inside of a CICS region so that you could run Java applications inside of CICS, and (here’s the important part) those applications could easily access CICS resources.
That means you can run a Java application inside CICS and use the JCICS API to call your existing CICS transactions. All this stays right there inside the CICS region. If that’s what you need your Java applications to do, it makes a lot more sense to run it this way than to run in a stand-alone JVM and then have to work out a mechanism (and there are several options) to communicate with your CICS transactions.
Given that, it further made sense to have Liberty (which is, in a sense, just a big Java program) run inside the JVM inside CICS. Then your Java EE (Jakarta EE) applications that you might run in a stand-alone Liberty server could easily use those same JCICS APIs to interact with CICS more easily than if the Liberty server was outside of the CICS region.
Of course another reason to run Liberty inside CICS is because you already own a license for CICS and would have to acquire a license for WebSphere z/OS to run Liberty outside of CICS.
Or perhaps if you’ve got a long history of running CICS in your shop, but no history of running stand-alone Java applications you might want to run your Java/Liberty applications inside a CICS region so that operations doesn’t see anything new. You’ve just got more CICS regions than before, but they still behave like CICS regions.
Remember that support for Liberty-in-CICS goes through CICS L2, so your support case will go to CICS first (in case the issue is some Liberty-CICS interaction that CICS support is best suited to handle) and then get passed to WebSphere support if needed.
And as mentioned earlier, any fixes delivered by Liberty will need to get re-packaged by CICS to be applied as CICS fixes to the Liberty delivered with CICS.
We’ll get to the Angel eventually, but let me just note here that you’ll pretty definitely want a separate Angel for your CICS Liberty servers (if not more than one) to separate it from any other Liberty servers you have (i.e. z/OSMF, z/OS Connect, etc).
There are also certain features of Liberty that you might use running stand-alone that you wouldn’t want to use running inside of CICS. One example is the WLM feature of Liberty. CICS is already managing what is running in CICS and having Liberty interacting with WLM itself will confuse things.
One last thing…CICS allows multiple instances of their JVM Server to run inside a single CICS region, which allows multiple Liberty servers to run inside a single CICS region.