CICS services

CICS® provides the following services, which Java™ programs can access through the JCICS programming interface. CICS services managers traditionally have the word “control” in their titles—for example, “terminal control” and “program control”. You will find these terms used extensively in CICS publications:
Data management services
CICS provides:
  • Record-level sharing, with integrity, in accessing Virtual Storage Access Method (VSAM) datasets. CICS logs activity to support:
    • Data backout (in the case of transaction or system failure)
    • Forward recovery (in the case of media failure)
    Management of VSAM data is provided by CICS File Control.
    CICS also implements two proprietary file structures, and provides commands to manipulate them:
    Temporary Storage
    Temporary storage (TS) is a means of making data readily available to multiple transactions. Data is kept in queues, which are created as required by programs. Queues can be accessed sequentially or by item number.

    Temporary storage queues can reside in main memory, or be written to a storage device.

    A temporary storage queue can be thought of as a named scratch-pad.

    Transient Data
    Transient data (TD) is also available to multiple transactions, and is kept in queues. However, unlike TS queues, TD queues must be predefined and can only be read sequentially. Each item is removed from the queue when it is read.

    Transient data queues are always written to a dataset. You can define a transient data queue so that writing a specific number of items to it acts as a trigger to start a specific transaction. (The triggered transaction might, for example, process the queue.)

  • Access to data in other databases (including DB2®), through interfaces with database products.
Communications services
CICS provides commands that give access to a wide range of terminals—displays, printers, and workstations—using SNA and TCP/IP protocols. Management of SNA and TCP/IP networks is provided by CICS terminal control.

You can write programs that use Advanced Program-to-Program Communication (APPC) commands to start and communicate with other programs in remote systems, using SNA protocols. CICS APPC implements the peer-to-peer distributed application model.

CICS also provides an Object Request Broker (ORB) to implement the inbound and outbound IIOP protocols defined by the Common Object Request Broker Architecture (CORBA). The ORB supports requests to execute Java stateless objects and enterprise beans.

The following CICS proprietary communications services are provided:
Function shipping
Program requests to access resources (files, queues, and programs) that are defined as existing on remote CICS regions are automatically routed by CICS to the owning region.
Distributed program link (DPL)
Program-link requests for a program defined as existing on a remote CICS region are automatically routed to the owning region. CICS provides commands to maintain the integrity of the distributed application.
Asynchronous processing
CICS provides commands to allow a program to start another transaction in the same, or in a remote, CICS region and optionally pass data to it. The new transaction is scheduled independently, in a new task. This function is similar to the fork operation provided by other software products.
Transaction routing
Requests to run transactions that are defined as existing on remote CICS regions are automatically routed to the owning region. Responses to the end-user are routed back to the region that received the request.
Unit of work services
When CICS creates a new task to run a transaction, a new unit of work (UOW) is started automatically. (Thus CICS does not provide a BEGIN command, because one is not required.) CICS transactions are always executed in-transaction.

CICS provides a SYNCPOINT command to commit or roll back recoverable work done. When the syncpoint completes, CICS automatically starts another unit of work. If you terminate your program without issuing a SYNCPOINT command, CICS takes an implicit syncpoint and attempts to commit the transaction.

The scope of the commit includes all CICS resources that have been defined as recoverable, and any other resource managers that have registered an interest through interfaces provided by CICS.

If you write enterprise beans using transaction services provided by commands defined by the Java Transaction Service (JTS), these commands (including BEGIN) are mapped by CICS to its unit of work services.

Program services
CICS provides commands that enable a program to link or transfer control to another program, and return.
Diagnostic services
CICS provides commands that enable you to trace programs and produce dumps.
Other services
CICS provides other services, such as journaling, timer, and storage management, that are not available through the JCICS interface. These are described in the CICS Application Programming Guide.