CICS is the power of mainframe. It has all the capabilities to handle online transactions. The ppt covers highly useful CICS concepts to refresh your CICS knowledge quickly.
2. Session 2 : ObjectivesTo understand
The languages that support CICS
CICS Command format and Argument Values
CICS Embedding in COBOL Application program
The CICS Control block EIB
The DFHCOMMAREA
Program preparation and execution
The Task flow
7. COMMAREAA COMMAREA is a CICS maintained unit of storage for
passing and receiving data between CICS programs
Any changes to the COMMAREA in the linked program,
will be available to the linking program after RETURN
Coded as DFHCOMMAREA in the Linkage Section
8. Transaction Execution -
COMMAREA
WORKING STORAGE SECTION
01 WS-COMM-AREA
LINKAGE SECTION
01 DFHCOMMAREA
PROCEDURE DIVISION.
……...…...…….
...Processing…
EXEC CICS RETURN TRANSID(‘TXN1’)
COMMAREA(WS-COMM-AREA)
END-EXEC.
First Execution - TXN1
WORKING STORAGE SECTION
01 WS-COMM-AREA
LINKAGE SECTION
01 DFHCOMMAREA
Next Execution - TXN1
Communication Area -
Maintained by CICS
Between Executions
9. Structure of CICS Application program -
COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID . XXXXXXXX.
ENVIRONMENT DIVISION. <=== THIS DIVISION MUST BE EMPTY
DATA DIVISION. <=== FILE SECTION IS OMITTED
WORKING- STORAGE SECTION.
77 --------------------- .
01 --------------------- .
05 ---------------- .
LINKAGE SECTION. <=== LINKAGE SECTION IS MANDATORY
01 DFHCOMMAREA. <=== COMMUNICATION AREA required for
05 -----------------. passing data for subsequent execs.
PROCEDURE DIVISION .
( COBOL STATEMENTS) + <=== CICS statements mixed with COBOL
( CICS STATEMENTS) statements. Some COBOL verbs not
. allowed.
GOBACK.
10. Structure of CICS Application
program – COBOL (Contd.)
The following COBOL statements cannot be issued in a CICS
application program.
- ACCEPT - DATE - DISPLAY - EXHIBIT
- RELEASE - SORT - STOP RUN - TRACE
- Any I/O statements ( OPEN ,CLOSE, READ, WRITE,
REWRITE, DELETE , START)
11. The Execute Interface Block (EIB)
A CICS area that contains information related to the current Task –
data, time, transaction-id
The definition is automatically inserted into the LINKAGE SECTION of
the program before the DFHCOMMAREA at the time of program
translation
EIB variables are available in the copy book DFHEIBLK
Information in the EIB fields can be used for
◦ Handling error/exceptions (EIBRESP, EIBRESP2)
◦ Checking the length of data passed to the program through its DFHCOMMAREA
(EIBCALEN)
◦ Identifying the function key pressed
12. EIB : ExampleEVALUATE TRUE
WHEN EIBCALEN = ZERO
MOVE LOW-VALUE TO INQMAP10
……..
……..
PERFORM 1400-SEND-CUSTOMER-MAP
WHEN EIBAID = DFHCLEAR
MOVE LOW-VALUE TO INQMAP10
……..
……..
PERFORM 1400-SEND-CUSTOMER-MAP
WHEN EIBAID = DFHPA1 OR DFHPA2 OR DFHPA3
CONTINUE
WHEN EIBAID = DFHPF3 OR DFHPF12
EXEC CICS
……
13. Sample CICS Program –
COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID . SAMPPROG.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING STORAGE SECTION.
77 WS-LENGTH PIC S9(4) COMP.
77 WS-RESP PIC S9(4) COMP.
01 WS-INPUT.
05 WS-TRAN-IDPIC X(4) .
05 FILLER PIC X.
05 WS-IN-DATA PIC X(15).
01 WS-OUTPUT.
05 WS-MSG_DESC PIC X(17).
05 FILLER PIC X .
05 WS-OUT-DATA PIC X(15).
LINKAGE SECTION.
01 DFHCOMMAREA.
05 LS-COMMAREA PIC X.
PROCEDURE DIVISION.
MOVE 40 TO WS-LENGTH.
MOVE LOW-VALUES TO WS-INPUT
EXEC CICS RECEIVE INTO (WS-INPUT)
LENGTH (WS-LENGTH)
RESP(WS-RESP)
END-EXEC.
IF WS-RESP = DFHRESP(NORMAL)
MOVE LOW-VALUES TO WS-OUTPUT
MOVE WS-IN-DATA TO WS-OUT-DATA
MOVE ‘MSG RECEIVED IS :’
TO WS-MSG-DESC
MOVE 53 TO WS-LENGTH
ELSE
MOVE LOW-VALUES TO WS-OUTPUT
MOVE WS-IN-DATA TO WS-OUT-DATA
MOVE ‘ERROR IN TXN : ’
TO WS-MSG-DESC
MOVE 53 TO WS-LENGTH
END-IF.
EXEC CICS SEND
FROM (WS-OUTPUT)
LENGTH(WS-LENGTH)
END-EXEC.
EXEC CICS
RETURN
END-EXEC .
15. CICS - DB2 Program Preparation
Compile
Object
Module
Link-Edit
Load
Module
Compiler
Listing
Translated
Source
Source
Program
Translator
Listing
Translate
Precompile
Listing
Pre-Compile
Application
Plan
DBRM
Bind
16. CICS Program Preparation
(Contd.)
COBOL-CICS programs should be compiled with RENT
option to make it Re-entrant.
A CICS-DB2-COBOL program would require a few
more additional steps like a Pre-compile and a Bind.
The pre-compiler would generate a DBRM (Database
Request Module) and the bind will generate a plan
or package using the DBRM.
17. CICS Security - Sign-on, Sign-
off
Security for accessing CICS system
Until CICS 2.2 users required to be defined as
resources in CICS System Table - Signon Table
(SNT). But with higher releases the SNT has
become obsolete and RACF is used as the External
Security manager.
CESN or CSSN for signon, CESF or CSSF for signoff
18. CICS Program Execution
Register the transaction in PCT
Register the Programs and Maps in PPT
Sign on to CICS
Enter transaction identifier
19. Starting a TASK
TXN1 Trans. Program
TXC1 MAPPGC1
TXC2 MAPPGC2
TXN1 TXNPGM1TXN1 TXNPGM1
TXN2 TXNPGM2
PCT
Program. Location
MAPPGC1 In Storage
MAPPGC2 On Disk
TXNPGM1 In StorageTXNPGM1 In Storage
TXNPGM2 On Disk
PPT
Load Module Library
MAPPGC1 MAPLIB
MAPPGC2 MAPLIB
TXNPGM1 PGMLIBTXNPGM1 PGMLIB
TXNPGM2 PGMLIB
CICS Address Space
TXNPGM1
MAPPGC1
20. CICS Statements after
Translation
Original Source Code :
EXEC CICS
READ DATASET(ACCMSTR) INTO(ACCT-MSTR-DTLS)
RIDFLD(ACCT-NO) RESP(RESP-CODE)
END-EXEC.
Translated Source
* EXEC CICS
* READ DATASET(‘ACCMSTR’) INTO(ACCT-MSTR-DTLS)
* RIDFLD(ACCT-NO) RESP(RESP-CODE)
* END-EXEC.
MOVE ‘..0……00061 ‘ TO DFHEIV0
MOVE ‘ACCMSTR’ TO DFHC0080
MOVE LENGTH OF ACCT-MSTR-DTLS TO DFHB0020
CALL ‘DFHEI1’ USING DFHEIV0 DFHC0080 ACCT-MSTR-DTLS
DFHB0020 ACCT-NO
MOVE EIBRESP TO RESP-CODE.
21. Session 2 : Summary
Language support and Embedding in COBOL
Command syntax & Argument values
Structure of a CICS application program
Control Block and Common Area to pass data across
programs
Program preparation and Program execution - PCT, PPT
Task flow diagram