Migrating Java EE applications to run in Liberty JVM server

If you have a Java™ EE application running in a Liberty instance that accesses CICS® over a network, you can run the application in a Liberty JVM server to optimize performance.

About this task

CICS supports a subset of the features that are available in Liberty. For a list of supported features in CICS integrated-mode Liberty, see Liberty features.

If your application uses security, you can continue to use Liberty security features however without further action it is possible that the CICS task will run under transaction CJSA, URIMAP matching in CICS will not be available and any resource access will be performed under the CICS default user ID. To better integrate your security solution with CICS, allowing your CICS tasks to run under the same user ID as determined by Liberty, see Authenticating users in a Liberty JVM server.

Procedure

  1. Update the application to use the JCICS API to access CICS services directly, ensuring that the correct JCICS encoding is used when the application passes data to and from CICS.
    For more information about encoding, see Data encoding. This step only applies if you are using CICS integrated-mode Liberty or CICS standard-mode Liberty with the runAsCICS() API.
  2. If you want to use CICS security for basic authentication, update the security constraint in the web.xml file of the Dynamic Web Project to use a CICS role for authentication. This step only applies if you are using CICS integrated-mode Liberty or CICS standard-mode Liberty and submitting work to the CICSExecutorService using the runAsCICS() method.
    
    <auth-constraint>
        <description>All authenticated users of my application</description>
        <role-name>cicsAllAuthenticated</role-name>
    </auth-constraint>
    
  3. Package the application as a WAR (Dynamic Web Project), an EBA (OSGi Application Project) file or an EAR (Enterprise Application Archive) file, in a CICS bundle.
    Restriction: EBA files are not supported in Java EE 8 and upwards.
    CICS bundles are a unit of deployment for an application. All CICS resources in the bundle are dynamically installed and managed together. Create CICS bundle projects for application components that you want to manage together.
  4. Deploy the CICS bundle projects to zFS and install the CICS bundles in the Liberty JVM server.

Results

The application is running in a JVM server.