Types of Java application in CICS

You can write the following types of Java™ application in CICS®:
JCICS applications
You can write Java programs that use the JCICS class library. JCICS allows you to access CICS resources such as VSAM files, CICS transient data queues and temporary storage. It also allows you to link to CICS applications written in other languages. Most of the functions of the EXEC CICS programming interface are supported. JCICS is supplied in the dfjcics.jar JAR file and can be downloaded to your workstation. It is also available with some releases of VisualAge® for Java.

JCICS applications are run in the CICS JVM. You can read more about JCICS in The JCICS class library.

Stateless CORBA objects
Stateless CORBA objects are Java server applications that communicate with a client application using the IIOP protocol. No state is maintained in object attributes between successive invocations of methods; state is initialized at the start of each method call and referenced by explicit parameters.

Stateless CORBA objects can receive inbound requests from a client and can also make outbound IIOP requests.

Method invocations may participate in Object Transaction Service (OTS) distributed transactions. If a client calls an IIOP application within the scope of an OTS transaction, information about the transaction flows as an extra parameter on the IIOP call. If a target stateless CORBA object implements the CosTransactions::TransactionalObject interface, the object is treated as transactional.
Note: An OTS transaction is a distributed unit of work, not a CICS transaction instance or resource definition.

Stateless CORBA objects can use the JCICS API to interact with CICS.

CICS stateless CORBA objects execute in the CICS JVM.

You can read more about CICS stateless CORBA objects in Stateless CORBA objects.

Enterprise beans
Enterprise beans are portable Java components that comply with Sun Microsystems' Enterprise JavaBeans Specification, Version 1.1. CICS has implemented these interfaces by mapping them to underlying CICS services. Enterprise beans can link to other CICS applications using connectors. You can also develop enterprise beans that use the JCICS class library to access CICS services or programs directly, but these applications will not be portable to a non-CICS EJB-compliant server.

The Enterprise JavaBeans (EJB) specification defines transactional distributed objects that communicate using the Java Remote Method Invocation (RMI) interface. CICS supports RMI over IIOP, mediated using a CORBA Object Request Broker (ORB).

Enterprise beans execute in the CICS JVM.

You can read more about Enterprise beans in What are enterprise beans?.

Table 1 shows the features that can be used in the different types of Java application in CICS:
Table 1. Java application features
Feature Non-IIOP CICS appl. CICS stateless CORBA object CICS session bean
Outbound IIOP YES YES YES
Inbound IIOP NO YES YES
APPC/MRO outbound UOW YES YES YES
APPC/MRO inbound UOW YES NO NO
EXEC CICS SYNCPOINT UOW YES NO NO
Outbound OTS transaction NO YES YES
Inbound OTS transaction NO YES YES
Container managed OTS transaction NO NO YES
Bean managed OTS transaction NO NO YES
Factory publication to JNDI NO YES YES
Application Metadata NO NO YES
State managed NO NO YES
Outbound Secure Sockets Layer (SSL) YES YES YES
Inbound Secure Sockets Layer (SSL) NO YES YES
Assertions YES YES YES