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

In CICS integrated-mode Liberty, all web requests:
  • Are fulfilled by CICS-enabled threads.
  • Run under a CICS task.
  • Provide access to CICS resources from Java web applications.

CICS standard-mode Liberty

CICS standard-mode Liberty provides a Liberty server without automatic CICS integration. For example, this mode lacks the optimized performance of a dedicated CICS thread-pool. However, the following capabilities are retained:
  • 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.