Multiple processes/tasks can't run parallelly in a traditional batch system using the same resources (files, tables, etc.).

For example, let us assume Job1, Job2 are submitted simultaneously, and both Jobs(Job1, Job2) are using the same file, table, etc. Assume Job1 got exclusive control on the resources starts executing first, and Job2 should be on hold until Job1 is completed to get the control on the resources.

So the disadvantage of the batch process is that jobs are not running simultaneously, and the processing results are not instant. To overcome the above disadvantages, IBM had launched the CICS (Online processing system for instant results) in the late 1960s.

History -

  • CICS was initially developed in the beginning in 1966 by the United States at an IBM Development Center in Des Plaines, Illinois.
  • The first CICS product was announced in 1968, named Public Utility Customer Information Control System(PU-CICS).
  • Later, there are many developments to the CICS and those versions are named with "CICS TS V".
  • CICS TS V2.1 through V2.3 focused on introducing CORBA and EJB technologies to CICS.
  • CICS TS V3.1 was released with a native implementation of the SOAP and WSDL technologies for CICS.
  • CICS TS V4.1 and V4.2 were published with enhancements to web connectivity, including native implementation of the Atom publishing protocol.
  • CICS TS V4.2 introduces JSON support, and it went on to be integrated into CICS TS V5.2.
  • CICS TS 5.5 introduced support for IBM SDK for Node.js, providing a full JavaScript runtime, server-side APIs, and libraries for IBM Z.
  • CICS TS V5.6 (current version) introduced enhanced support for Java to deliver a cloud-native experience for Java developers.

What is CICS?

CICS stands for "Customer Information Control System".

CICS is a OnLine Transaction Processing(OLTP) system/application server that provide online transaction management and connectivity for applications on the Mainframe under the z/OS and is also called as an online system in mainframes.

CICS designed as a middleware and provides services to run the different transactions(processes) simultaneously to produce instant results.

A CICS transaction is a command or unit that initiates one or more application programs processing to perform a task. These transactions might use the same file or table, or programs through multiple user requests.

The processing in CICS is mostly interactive(Screen-oriented). There are some cases where background transactions are also possible.

CICS supports speedy, high-volume online transaction processing. CICS manages the sharing of resources, maintains the data integrity and prioritizes execution for faster response.

CICS works with the database by authorizing users, allocating resources, and passing database requests to the appropriate database manager (DB2).

CICS application is a collection of related programs that together perform a business operation. CICS applications execute under CICS Transaction Server, use CICS services and interfaces to access programs and files.

CICS applications are conventionally run by submitting a transaction request. Transaction execution consists of running one or more application programs that implement the required function.

CICS in z/OS -

In a z/OS system, CICS provides a function layer for managing transactions where the operating system remains the last interface with the computer hardware.

CICS Transaction Server (CICS TS) is the version of CICS that works as an assistant to the z/OS operating system and an administrative director to other applications.

CICS TS runs as an interface between application programs, database managers and access methods.

CICS TS supports the system by efficiently handling complex tasks or transactions, freeing the system to process its normal non-transactional workload.

When an application program accesses a terminal or any device, it doesn't communicate directly with it. The application program issues command(CICS command) to perform terminal I/O, file I/O, program control, and other functions, which communicates with the access methods of the operating system. Finally, the access method communicates with the terminal or device and make it available for application program execution.


A z/OS system might have multiple copies of CICS(i.e. multiple systems) running at one time. Each CICS starts as a separate z/OS address space.

CICS manages processor storage and task manager that handles the execution of multiple programs and provides file management functions.

CICS region can start by using a CICS region job running in a batch environment. Two or more CICS regions can be active simultaneously as CICS runs as a batch job in the operating system at the back-end.

CICS Characteristics -

Below is the list of CICS Characteristics -

  • Cost-effective.
  • Instantaneous/immediate results.
  • Multiple programs execution in parallel.
  • Interact with the application program through maps.
  • A pseudo conversation about reducing the CPU waiting time.
  • Arithmetic operations are less effective.
  • Effective when dealing with a small amount of data and less effective for the huge amount of data.

Difference between Batch and Online system -

Batch Online
JCL used to run the program to get the results.Transaction or other programs are used to run the program to get the results.
Non-instantaneous results (takes some time to update the results. i.e. waits until job completion).Instantaneous results (Results displays immediately)
Batch is preferable while dealing with the huge amount of data.Online is less effective while dealing with the huge amount of data.
Batch is preferable while dealing with arithmetic operations.Arithmetic operations are less effective in online.
One program can execute at a time.Multiple programs can execute parallelly.
Interaction with the program is through RUN JCL.Interaction with the program is through screens or maps.
The batch environment needs continuous interactionThe online environment works on the pseudo conversation technique.
Batch processing is cheaper.Online processing is costlier.
Batch programs make direct calls to the operating system to perform I/O operations. CICS program issues command to perform terminal I/O, file I/O, program control, and other functions without making calls to the operating system.