How it works: Java in CICS

  • CICS® offers a set of tools, including the IBM® CICS SDK and some Gradle or Maven assets, for you to develop, build, and deploy applications into a JVM server in CICS.

    The diagram shows the workflow of developing and deploying Java applications for CICS.

  • Workflow for developing and deployment Java applications

Development

During development, you can resolve Java dependencies by using either an Eclipse IDE with the IBM CICS SDKs or an IDE of your choice.

The IBM CICS SDK for Java™ provides support for Java applications, including JCICS and JCICSX APIs. It is preinstalled in CICS Explorer® and IBM Developer for z/OS, or can be installed as a plug-in into an existing Eclipse platform. The IBM CICS SDK for Enterprise Java (Liberty) provides support for Enterprise Java applications and needs to be installed separately as an Eclipse plug-in. These SDKs provide the libraries that are needed to resolve Java dependencies automatically.

If you use your own IDE, you are recommended to use Gradle or Maven artifacts to resolve dependencies, including JCICS and JCICSX APIs. You can get the artifacts directly from Maven Central, or from locally-hosted and allow-listed repositories by using tools such as JFrog Artifactory or Sonatype Nexus.

Learn more about different IDE options.

Packaging and deployment

Java applications are deployed to z/OS® File System (zFS) and run by the JVM server in the CICS region. A JVM server is a CICS-provided Java runtime, which can be configured to run as a classpath-based Java VM, an OSGi framework, or a WebSphere® Liberty application server.

You're recommended to package your Java application into a CICS bundle for deployment. A CICS bundle is a mechanism for packaging, deploying, and managing CICS resources, including Java applications. It allows an entire CICS application to be controlled from a singular point. You can create and deploy CICS bundles by using the IBM CICS SDK or the CICS-provided Gradle or Maven plug-ins. Learn more about CICS bundles.

In the case of Liberty applications, you can also deploy them to z/FS by adding an <application> element that points to the application package to the Liberty server configuration (server.xml, included files, or configuration dropins files).

To understand design choices that you need to make for different JVM servers, application and packaging types, and deployment methods, see Design choices for Java in CICS.

Where next?