Comparing CICS standard-mode Liberty and CICS integrated-mode Liberty
The two modes under which Liberty can run inside a JVM server are CICS® standard-mode Liberty and CICS integrated-mode Liberty.
Both modes are configured by a single JVM profile option. See JVM server option CICS_WLP_MODE for details.
CICS integrated-mode Liberty
- Are fulfilled by CICS-enabled threads.
- Run under a CICS task.
- Provide access to CICS resources from Java web applications.
CICS standard-mode Liberty
- Life-cycle and administrative control over the Liberty server instance.
- CICS bundle application deployment.
- Programmatic opt-in to CICS-enabled threads, which provides access to CICS resources, CICS security, and native Db2® drivers.
Side-by-side comparison
As the table highlights, it is more straightforward to migrate an application into CICS standard-mode Liberty than to CICS integrated-mode Liberty. This reflects the operation of Liberty outside of CICS, where there are no CICS-specific restrictions, or configurations. CICS standard-mode Liberty also offers increased zIIP-eligibility because native CICS-integration code does not run. Additionally, the reduction in CP cycles per request available in CICS standard-mode Liberty is because the native code is not bootstrapping into a CICS task environment for each request.
| Capability | CICS integrated-mode Liberty | CICS standard-mode Liberty |
|---|---|---|
| Supported feature set |
Jakarta EE 10 Full Platform Jakarta EE 9 Full Platform Java EE 8 / Jakarta EE 8 Full Platform Java EE 8 / Jakarta EE 8 Web Profile Java EE 7 Full Platform Java EE 7 Web Profile Java EE 6 Web Profile |
Jakarta EE 10 Full Platform Jakarta EE 9 Full Platform Java EE 8 / Jakarta EE 8 Full Platform Java EE 8 / Jakarta EE 8 Web Profile Java EE 7 Full Platform Java EE 7 Web Profile Java EE 6 Web Profile |
| Java CICS API (JCICS) | Yes | Yes under runAsCICS() API only |
| Native driver for Db2 | Yes | Yes under runAsCICS() API only |
| Ease of application migration to CICS Liberty | Moderate | Easy |
| Asynchronous operations and nested transactions | Some restrictions | Yes |
| CICS bundle deployment of application | Yes | Yes |
| CICS Liberty autoconfiguration available | Yes | Yes |
| JVM server creates and controls the Liberty server? | Yes | Yes |
| zIIP eligibility | Up to 90% | Up to 99% |
| CP | Integration overhead | Minimal overhead |
| CICS thread-pool optimizations | Yes | No |
As applications look to use CICS resources and integrate with CICS capabilities (for example, JDBC type 2), CICS standard-mode Liberty requires you to programmatically opt in to a CICS-enabled environment by using the CICSExecutorService.runAsCICS() API. As with CICS integrated-mode Liberty, more overhead and zIIP-eligibility reduction are the tradeoffs for running under CICS tasks. CICS standard-mode Liberty requires that your CICS resource work is isolated in discrete operations that can be run through the runAsCICS() API. You get the most out of CICS standard-mode Liberty by minimizing access to CICS and limiting that access to specific application components.
As the level of CICS integration increases, the cost of running in CICS standard-mode Liberty compared to CICS integrated-mode Liberty rises. Although both environments can put your workload into a CICS-enabled environment, CICS integrated-mode Liberty uses an internal thread-pool and other scalability optimizations compared to the one-shot CICS-enabled threads of CICS standard-mode Liberty. There is also one other important distinction - the one-shot threads used to satisfy runAsCICS() requests are not Enterprise Java capable. You cannot mix JCICS with Enterprise Java. Conversely, requests running in CICS integrated-mode Liberty (using the optimized thread-pool technology) can happily mix Enterprise Java APIs and JCICS APIs.