Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
🖮 CICS

Introduction to CICS

Beginner 🕑 20 min read 👁 5 views

What is CICS?

CICS (Customer Information Control System) is IBM's transaction processing system for mainframes. It enables online, real-time transaction processing for business applications.

CICS Components

  • Transaction - Unit of work (4-char ID)
  • Program - Application code
  • Terminal - User interface device
  • File - Data storage
  • Queue - Temporary/transient data

CICS Services

  1. Program Control - LINK, XCTL, RETURN
  2. Terminal Control - SEND, RECEIVE
  3. File Control - READ, WRITE, REWRITE
  4. Queue Control - WRITEQ, READQ
  5. Interval Control - DELAY, POST, WAIT

CICS-COBOL Interface

CICS commands are embedded in COBOL using:

EXEC CICS command options END-EXEC.

CICS Areas

  • EIB - Execute Interface Block (system info)
  • COMMAREA - Communication area between programs
  • TWA - Transaction Work Area
  • CWA - Common Work Area

Common EIB Fields

FieldDescription
EIBCALENCOMMAREA length
EIBTRNIDTransaction ID
EIBTRMIDTerminal ID
EIBDATEDate (0CYYDDD)
EIBTIMETime (0HHMMSS)
EIBRESPResponse code

Code Example

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CICSPROG.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 WS-MESSAGE      PIC X(50).
       01 WS-RESPONSE     PIC S9(8) COMP.
       01 WS-LENGTH       PIC S9(4) COMP.

       01 WS-COMMAREA.
          05 CA-FUNCTION  PIC X(1).
          05 CA-EMP-ID    PIC 9(6).
          05 CA-EMP-NAME  PIC X(30).
          05 CA-RETURN-CD PIC 9(2).

       LINKAGE SECTION.
       01 DFHCOMMAREA     PIC X(39).

       PROCEDURE DIVISION.

           IF EIBCALEN = 0
      *        FIRST TIME - NO COMMAREA
               MOVE "WELCOME TO CICS" TO WS-MESSAGE
               PERFORM SEND-MESSAGE
           ELSE
      *        RETURNING WITH DATA
               MOVE DFHCOMMAREA TO WS-COMMAREA
               PERFORM PROCESS-REQUEST
           END-IF.

           EXEC CICS RETURN
               TRANSID('MENU')
               COMMAREA(WS-COMMAREA)
               LENGTH(39)
           END-EXEC.

       SEND-MESSAGE.
           MOVE 50 TO WS-LENGTH.
           EXEC CICS SEND
               FROM(WS-MESSAGE)
               LENGTH(WS-LENGTH)
               ERASE
           END-EXEC.

       PROCESS-REQUEST.
           EVALUATE CA-FUNCTION
               WHEN 'I'
                   PERFORM INQUIRY-LOGIC
               WHEN 'A'
                   PERFORM ADD-LOGIC
               WHEN 'U'
                   PERFORM UPDATE-LOGIC
               WHEN OTHER
                   MOVE '99' TO CA-RETURN-CD
           END-EVALUATE.