You are on page 1of 155

CICS

CICS
(Customer Information Control System)

DBSS Training Centre

CICS

Table of Contents

Introduction to CICS Basic Mapping Support Program Control File Control Queues Interval and Task Control Recovery and restart Program preparation CICS Supplied Transactions Screen Definition Facility
DBSS Training Centre

CICS

Introduction to CICS

DBSS Training Centre

CICS

Introduction
Customer Information Control System -CICS developed in
late 1960s as a DB/DC control system CICS provides an interface between the Operating System and application programs Macro Level CICS - initial version Assembler macro to request CICS services Command Level CICS - high level lang.version commands to request CICS services - Single command can replace series of macros

DBSS Training Centre

CICS

Batch & Online : Differences


BATCH SYSTEM
1. Input data is prepared and given in sequence (file) 2. Processing sequence is predictable and hence restarting the process in case of failure is easy. 3. Programs and files cant be shared 4. Programs are scheduled through jobs

ONLINE SYSTEM
1. Data is entered as needed not in sequence (terminal) 2. Since processing seq. is unpredictable, special recovery/restart proc. is reqd. in case of failure. 3. Programs and files can be shared 4. Transaction can be run at any time
DBSS Training Centre

CICS

CICS & Operating System

Operating System CICS


Enter Code :

Users App.Prg

Files & Database

DBSS Training Centre

CICS

DB/DC System
Terminals

Data Base
Central System

DBSS Training Centre

CICS

CICS System Services



Data-Communication Functions Data-Handling Functions Application Program Services System Services Monitoring Functions

DBSS Training Centre

CICS

Task &Transaction
Task :- A basic unit of work which is scheduled by the
operating system or CICS Ex -Read from and write to the terminal

Transaction :- An entity which initiates execution of a


task. In CICS, transaction is identified by the transaction identifier (Trans-id)

DBSS Training Centre

CICS

Application Programming Concepts

10

Pseudo-Conversational
Multitasking Multithreading

Quasi-Reentrancy

DBSS Training Centre

CICS

11

Terminal Conversation
Conversational : A mode of dialogue between program
and terminal based on a combination of sending message and receiving message within the same task Since human response is slower than the CPU speed, a significant amount of resource will be wasted just waiting

Pseudo-Conversational. A mode of dialogue between


program and terminal which appears to the operator as a continuous conversation but which is actually carried by a series of tasks

DBSS Training Centre

CICS

Conversational Transaction Example

12

PROCEDURE DIVISION. : FIRST-PROCESS. EXEC CICS RECEIVE ---- <= TSK1,12345 END-EXEC. : process EXEC CICS SEND ----- <= EMP(12345) Details END-EXEC. * - - - - - - Program Waits For Response - - - - SECOND PROCESS. EXEC CICS RECEIVE ----- <= User Enters Data END-EXEC. : process
DBSS Training Centre

CICS

Pseudo-Conversational Example
Transaction TSK2 Program PROG2 PROCEDURE DIVISION. : EXEC CICS RECEIVE END-EXEC. : EXEC CICS SEND END-EXEC. EXEC CICS RETURN END-EXEC.
DBSS Training Centre

13

Transaction TSK1 Program PROG1 PROCEDURE DIVISION. : EXEC CICS RECEIVE END-EXEC. : EXEC CICS SEND END-EXEC. EXEC CICS RETURN TRANSID (TSK2) END-EXEC.

CICS

14

CICS Components
Control Programs (or Management Modules)
Programs that interface between OS and app. pgm Handle the general functions that are crucial to operation of CICS

Control Tables
Define the CICS environment Functionally associated with the management module

Control Blocks (or Areas)


Contain system type information. Eg. Task Control Area contains information about the task

DBSS Training Centre

CICS

Management Pgms. & Ctrl. Tables


Tables
PCP FCP TCP KCP TSP TDP SCP ICP JCP Processing Progm Table File Control Table Terminal Control Table Program Control Table Temp. Storage Table Destin. Control Table PPT FCT TCT PCT TST DCT

15

Programs
Program Control File control Terminal Control Task Control Temporary Storage Transient Data Storage Control Interval Control Journal Control

DBSS Training Centre

CICS

16

CICS Program Considerations


Considerations
- Must eventually return control to CICS - Cant modify procedure division instructions cause CICS programs may be shared by many tasks - Can modify working storage since a unique copy of working storage is created for each task

DBSS Training Centre

CICS

17

CICS Program Restrictions


Restrictions
- No CONFIG. SECTION, I/O SECTION to be specified in the ENVIRONMENT DIVISION.
- FILE SECTION, OPEN, CLOSE, and non-CICS READ & WRITE statements are not permitted because file management is handled by CICS. - COBOL commands such as ACCEPT, DISPLAY, EXHIBIT, TRACE, STOP RUN, GOBACK are avoided. (STOP RUN & GOBACK are sometimes included in order to eliminate compiler diagnostic but never executed)
DBSS Training Centre

CICS

18

Sample CICS Program


IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-INPUT. 05 WS-TRANSID P IC X(4). 05 FILLER PIC X(1). 05 WS-IN-EMP-CD PIC X(4) VALUE ALL X. 01 WS-OUTPUT. 05 FILLER PIC X(16) VALUE EMP CODE : . 05 WS-OUT-EMP-CD PIC X(4). 01 WS-LENGTH PIC S9(4) COMP. LINKAGE SECTION.

DBSS Training Centre

CICS

19

Sample Program Contd.


PROCEDURE DIVISION. 000-MAINLINE. PERFORM 100-RECV-INPUT. PERFORM 200-SEND-OUTPUT. EXEC CICS RETURN END-EXEC. STOP RUN. 100-RECV-INPUT. MOVE 9 TO WS-LENGTH. EXEC CICS RECEIVE INTO (WS-INPUT) LENGTH (WS-LENGTH) END-EXEC. MOVE WS-IN-EMP-CODE TO WS-OUT-EMP-CODE 200-SEND-OUTPUT. EXEC CICS SEND FROM (WS-OUTPUT) LENGTH (20) ERASE END-EXEC.

DBSS Training Centre

CICS

20

Basic Mapping Support

DBSS Training Centre

CICS

21

Topics in BMS

Introduction to BMS Physical and Symbolic Map Map and Mapset Map Definition Macros Screen Manipulation/Handling Screen Design Considerations Interfacing with Terminal using a Map

DBSS Training Centre

CICS

22

Introduction to BMS
Primary functions of BMS
Removal of device dependent codes from Application Program Removal of constant information from Application program
(Headers, Titles...) Construct NMDS - Native Mode Data Stream Text handling Terminal Paging & Message routing Contents of the screen defined thru BMS is called Map. Map is a program written in assembly language. BMS macros are available for Map coding.

DBSS Training Centre

CICS

23

Map and Mapset


Representation of one screen format is called Map
(screen panel). One or more maps, linkedited together, makes up a Mapset (load module). Mapset must have a entry in PPT Mapset name has two parts. Generic name 1- 7 chars. Used in App. Pgm. Suffix 1 char. To identify the device type Multimap Panel Dynamically constructing a screen panel with multiple maps at the execution time
DBSS Training Centre

CICS

24

Types of MAPS
There are 2 types of MAPS

Physical Map
Physical Map is a map used by CICS ( CSECT) Ensure device independence in the application program

Symbolic Map
Ensure device and format independence in the app prog Symbolic Map is a map used by Application Program (DSECT)
DBSS Training Centre

CICS

25

Example Of Symbolic Map


01 EMPRECI. 02 FILLER PIC X(12). 02 EMPNAL PIC S9(4) COMP. 02 EMPNAF PIC X. 02 FILLER REDEFINES EMPNAF. 03 EMPNAA PIC X. 02 EMPNAI PIC X(21).

01 EMPRECO REDEFINES EMPRECI. 02 FILLER PIC X(12). 02 FILLER PIC X(03). 02 EMPNAO PIC X(21).
DBSS Training Centre

CICS

26

Physical & Symbolic Map - Logic Flow


BMS source Assembler Physical MAP Symbolic MAP

Linkage editor

Load module (MVS)

DBSS Training Centre

CICS

27

Map definition Macros


General Format 1 setname operation Example EMPMAP DFHMSD 16 operands TYPE=MAP, MODE=INOUT, LANG=COBOL, STORAGE=AUTO, TIOAPFX=YES 72 contd. X X X X

* *

ANY COMMENTS
DBSS Training Centre

CICS

28

Order of Macros

DFHMSD TYPE=DSECT DFHMDI Map DFHMDF A field DFHMDF A field : DFHMDI Map DFHMDF A field DFHMDF A field : DFHMSD TYPE=FINAL END Mapset

Mapset
DBSS Training Centre

CICS

29

DFHMSD Macro
Define a mapset and its characteristics or to end a mapset
definition Only one mapset is allowed in one assembly run. Example EMPMSET DFHMSD TYPE=&SYSPARM , MODE=INOUT, LANG=COBOL, STORAGE=AUTO, TIOAPFX=YES, CNTL=(FREEKB,FRSET,PRINT)

X X X X X

DBSS Training Centre

CICS

30

DFHMDI Macro
Define a map and its characteristics Example
EMPMAP DFHMDI SIZE=(ll,cc), LINE=nn, COLUMN=mm, JUSTIFY=LEFT/RIGHT X X X

DBSS Training Centre

CICS

31

Screen Layout
&Customer No. :&nnnnnnnn

Where
& Attribute character n Unprotected numeric - Cursor

DBSS Training Centre

CICS

DFHMDF Macro For The Above Layout

32

Define a field and its characteristics Example


DFHMDF POS(ll,cc), INITIAL=Customer No. :, ATTRB=ASKIP, LENGTH=14 CUSTNO DFHMDF POS=(ll,cc), ATTRB=(UNPROT,NUM,FSET,IC), JUSTIFY=RIGHT, PICIN=9(8), PICOUT=9(8), LENGTH=8 X X X X X X X X

DBSS Training Centre

CICS

33

Attribute character
Invisible one byte character Defines the characteristics of a field
Thru ATTRB param. of DFHMDF.

There are different kinds of attributes


- Attributes to control the display intensity of the field - Keyboard Attributes - Attribute Related to the Field Modification - Cursor Control Attribute

DBSS Training Centre

CICS

34

Modified Data Tag


Indicates the field has been modified or not Effective use of MDT reduces the amount of data traffic. MDT setting/resetting
- when the user modifies a field on the screen - CNTL=FRSET, defined in map/mapset - FSET in ATTRB parameter of DFHMDF

DBSS Training Centre

CICS

35

Skipper Technique
Unlabelled 1-byte field with the autoskip attribute DFHMDF POS(ll,cc),ATTRB=ASKIP,LENGTH=1 To skip the cursor to the next unprotected field after one
unprotected field. Screen Layout :
&xxxxx&$ &xx

where
$ & X Skipper field Attribute byte Unprotected field
DBSS Training Centre

CICS

36

Stopper Technique
Unlabelled 1-byte field with the protect attribute DFHMDF POS(ll,cc),ATTRB=PROT,LENGTH=1 To stop the cursor in order to prevent erroneous field
overflow by terminal user. Screen Layout : &xxxxx&$#&$ where # Stopper field

DBSS Training Centre

CICS

37

Cursor Positioning Techniques


Static positioning (map definition) Dynamic/Symbolic Positioning (app.pgm)

Dynamic/Relative Positioning (app. pgm)


Checking Cursor Position by EIBCPOSN.

DBSS Training Centre

CICS

38

AID KEYS
Indicates the method to initiate the transfer of info. from

terminal to CICS. PF keys, PA keys, ENTER & CLEAR key EIBAID contains , recently used AID code Standard AID list - DFHAID HANDLE AID establish the routines that are to be invoked when the aid is detected by a RECEIVE MAP command Syntax :
EXEC CICS HANDLE AID Option (label) END-EXEC Conditions : INVREQ
DBSS Training Centre

CICS

Numeric Sign/Decimal Pt Handling

39

Numeric Sign : For input operations, Separate fields or


CR/DR field approach can be used and for output operations, PICOUT parameter can be given in macro

Decimal Point : For input operations, Virtual decimal


point or Separate fields approach can be used and for output operations, PICOUT parameter has to be given in the field definition macro.

DBSS Training Centre

CICS

40

SEND MAP
Writes formatted output to a terminal. Syntax :
EXEC CICS SEND MAP(mapname) [[ FROM(dataname) ] [DATAONLY] | MAPONLY] [ MAPSET(mapsetname) ] [ CURSOR(VALUE) ] [ FREEKB ][ ERASE ][ FRSET ] [ HANDLE | NOHANDLE [ RESP (dataname) ] ] END-EXEC

Conditions : INVREQ,LENGERR
DBSS Training Centre

CICS

41

RECEIVE MAP
To receive input from a terminal Syntax :
EXEC CICS RECEIVE MAP (mapname) [ SET(pointer) | INTO(dataname) ] [LENGTH(msg-len)] [ MAPSET(mapsetname) ] [ HANDLE | NOHANDLE [ RESP() ] ] END-EXEC
Conditions: INVREQ, MAPFAIL
DBSS Training Centre

CICS

42

Types of BMS Panel operations



Single Map panel Text Panel Multipage Message Multimap Panel Multimap/Multipage Message

DBSS Training Centre

CICS

43

Screen Design Considerations


Functional Screen Design User-Friendly Screen Design

DBSS Training Centre

CICS

CICS Transaction (Initiation) Flow :Operating System System Services

44

Program Library

ACCT

Terminal Control

3
Account File

Storage Manage -ment

DBSS Training Centre

CICS

CICS Transaction Flow :-( SEND MAP)


Operating System Program Library

45

Menu Screen File Control Account File

Program ACCT00

BMS
DBSS Training Centre

CICS

CICS Transaction Flow :( RECEIVE & SEND MAPs)

46

Operating System
Users Next input File Control

Program Library

Account File

6 8 BMS

Program ACCT01

DBSS Training Centre

CICS

47

PROGRAM CONTROL

DBSS Training Centre

CICS

48

Program Control Commands



LINK XCTL RETURN LOAD RELEASE

DBSS Training Centre

CICS

49

LINK
Used to pass control from one application program to
another The calling program expects control to be returned to it Data can be passed to the called program using COMMAREA If the called program is not already in main storage it is loaded

DBSS Training Centre

CICS

50

LINK Syntax
EXEC CICS LINK PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)]] END-EXEC. Conditions : PGMIDERR, NOTAUTH, LENGERR

DBSS Training Centre

CICS

51

XCTL
To xfer control from one application program to another in
the same logical level The program from which control is transferred is released Data can be passed to the called program using COMMAREA If the called program is not already in main storage it is loaded

DBSS Training Centre

CICS

52

XCTL Syntax
EXEC CICS XCTL PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)]] END-EXEC. Conditions : PGMIDERR, NOTAUTH, LENGERR

DBSS Training Centre

CICS

53

RETURN
To return control from one application program to another
at a higher logical level or to CICS Data can be passed using COMMAREA when returning to CICS to the next task

DBSS Training Centre

CICS

54

RETURN Syntax
EXEC CICS RETURN [TRANSID(name) [COMMAREA(data-area) [LENGTH(data-value)]]] END-EXEC. Conditions : INVREQ, LENGERR

DBSS Training Centre

CICS

55

CICS PROG A LINK RETURN PROG C LINK RETURN

Level 0 Level 1

PROG B XCTL

Level 2

Level 3
Application Program Logic Levels PROG D XCTL PROG E RETURN
DBSS Training Centre

CICS

56

To load program/table/map from the CICS DFHRPL


concatenation library into the main storage Using load reduces system overhead Syntax :

LOAD

EXEC CICS Load Program(name) [SET (pointer-ref)] [LENGTH (data-area)] END-EXEC. Condition : NOTAUTH, PGMIDERR
DBSS Training Centre

CICS

57

RELEASE
To RELEASE a loaded program/table/map Syntax :
EXEC CICS RELEASE PROGRAM(name) END-EXEC. Conditions : PGMIDERR, NOTAUTH, INVREQ

DBSS Training Centre

CICS

58

COMMAREA
Data passed to called program using COMMAREA in
LINK and XCTL Calling program - Working Storage defn Called program - Linkage section defn under DFHCOMMAREA Called program can alter data and this will automatically available in calling program after the RETURN command ( need not use COMMAREA option in the return for this purpose ) EIBCALEN is set when COMMAREA is passed
DBSS Training Centre

CICS

59

POSSIBLE ERRORS
Conditions that aren't normal from CICS's point of view
but that are expected in the pgm. Conditions caused by user errors and input data errors. Conditions caused by omissions or errors in the application code. Errors caused by mismatches bet. applications and CICS tables, generation parameters & JCL Errors related to hardware or other system conditions beyond the control of an appl. pgm.

DBSS Training Centre

CICS

Error Handling Methods

60

When the error (exceptional conditions) occur, the program can do any of the following Take no action & let the program continue - Control returns to the next inst. following the command that has failed to execute. A return code is set in EIBRESP and EIBRCODE. This state occurs cause of NO HANDLE /RESP/IGNORE conditions Pass control to a specified label - Control goes to a label in the program defined earlier by a HANDLE CONDITION command. Rely on the system default action - System will terminate or suspend the task depends on the exceptional condition occurred DBSS Training Centre

CICS

61

HANDLE CONDITION
HANDLE CONDITION condition[(label)]... 'condition'
specifies the name of the condition, and 'label' specifies the location within the program to be branched Remains active while the program is executing or until it encounters IGNORE/another HANDLE cond. Syntax :
EXEC CICS HANDLE CONDITION ERROR(ERRHANDL) LENGERR(LENGRTN) END-EXEC This example handles DUPREC cond. separately, all the other ERRORs together. LENGERR will be handled by system
DBSS Training Centre

CICS

Alternative to HANDLE Condition

62

NOHANDLE to specify no action to be taken for any


condition or attention identifier (AID)

RESP(xxx) "xxx" is a user-defined fullword binary data


area. On return from the command, it contains a return code. Later, it can be tested by means of DFHRESP as follows, If xxx=DFHRESP(NOSPACE) ... or If xxx=DFHRESP(NORMAL) ...

DBSS Training Centre

CICS

63

IGNORE CONDITION
IGNORE CONDITION condition condition ... condition specifies the name of the condition that is to be
ignored( no action will be taken) Syntax :
EXEC CICS IGNORE CONDITION ITEMERR LENGERR

END-EXEC This command will not take any actions if the given two error occurs and will pass the control to the next instruction

DBSS Training Centre

CICS

64

PUSH & POP


To suspend all current HANDLE CONDITION,
IGNORE CONDITION, HANDLE AID and HANDLE ABEND commands. Used for eg. while calling sub-pgms (CALL) While receiving the control, a sub-program can suspend Handle commands of the called program using PUSH HANDLE While returning the control, it can restore the Handle command using POP HANDLE

DBSS Training Centre

CICS

65

Syntax of Push & Pop


Syntax of Push :
EXEC CICS Push Handle END-EXEC.

Syntax of Pop :
EXEC CICS Pop Handle END-EXEC.
DBSS Training Centre

CICS

66

EXEC Interface Block (EIB)


CICS provides some system-related information to each
task as EXEC Interface Block (EIB) unique to the CICS command level
EIBAID Attention- Id (1 Byte) EIBCALEN Length of DFHCOMMAREA (S9(4) comp) EIBDATE Date when this task started (S9(7) comp-3) EIBFN Function Code of the last command ( 2 Bytes) EIBRCODE Response Code of the last command (6 Bytes) EIBTASKN Task number of this task (S9(7) comp-3) EIBTIME Time when this task started (S9(7) comp-3) EIBTRMID Terminal-Id (1 to 4 chars) EIBTRNID Transaction-Id (1 to 4 chars) DBSS Training Centre

CICS

67

Processing Program Table - PPT


DFHPPT TYPE=ENTRY PROGRAM |MAPSET= name [PGMLANG= ASM|COBOL|PLI] [RES= NO|FIX|YES] : : other options : Eg. DFHPPT TYPE=ENTRY,PROGRAM=TEST, PGMLANG=COBOL
DBSS Training Centre

CICS

68

PCT Entry
DFHPCT TYPE=ENTRY TRANSID= name PROGRAM=name TASKREQ=pf6 RESTART=yes/no ( TRANSEC = 1to 64) RSLKEY= 1 to 24 resource level key SCTYKEY= 1 to 64 security key : : other options
DBSS Training Centre

CICS

69

File Handling

DBSS Training Centre

CICS

70

VSAM
Different types of VSAM Datasets used in CICS are :

ESDS KSDS RRDS

Entry Sequenced Dataset Key Sequenced Dataset Relative Record Dataset

DBSS Training Centre

CICS

71

Services Provided By CICS


Basic Operations required for a file are
Adding a Record. Modifying an Existing Record. Deleting an Existing Record. Browsing One or Selected or All Records.

In Addition, CICS Provides


Exclusive Control. (Record Level Locking). Data Independence. Journalling. Opening and closing Files.
DBSS Training Centre

CICS

73

Defining A File to CICS


Files should be defined in FCT (File Control Table). FCT will contain all the Information about a File. (like
dataset name, access methods, permissible file service request, etc.) Defining Files can be done either by CEDA Transaction or DFHFCT Macro.

DBSS Training Centre

CICS

74

Syntax of DFHFCT Macro


DFHFCT TYPE=FILE,ACCMETH=VSAM,
DATASETNAME=NAME, SERVRQ=(ADD,BROWSE,DELETE,READ,UPDATE), FILSTAT=(ENABLED,OPENED)

DBSS Training Centre

CICS

75

File Handling in Programs


Files should not be defined in the Program. Program should not open or close a File. Records can be written in any order. A number of records
can be added at a time. Records can be inserted, updated or deleted.

DBSS Training Centre

CICS

76

Important Key-Words
Dataset/File :- Name in the FCT. Into/From (WS-Rec) :- Working-Storage Area
defined in the program where the CICS Puts/Gets the Data. RIDFLD :- Contains the Record Key. RESP :- Contains the return code of the executed command. LENGTH :- Length of the Record to be Retrieved or Written.

DBSS Training Centre

CICS

77

Random READ
EXEC CICS READ File(filename) [SEt() | Into()] RIdfld(Rec-Key) END-EXEC.
Condition: DISABLED, NOTOPEN, NOTFND, LENGERR, DUPKEY, IOERR.

DBSS Training Centre

CICS

78

Example for Random Read


EXEC CICS READ File( 'INVMAS ') Into(WS-INVMAS-REC) Length(WS-INVMAS-LEN) RIdfld('7135950602') | RIdfld(WSINVMAS-KEY) END-EXEC.

DBSS Training Centre

CICS

79

Sequential Read
Sequential Read is done by Browse Oper. Establish the pointer to the First Record to be Read

Using StartBr. Next and Previous Records can be Read as required Using ReadNext and ReadPrev. End the Browse Operation at last. Browse can be re-positioned. During Browse Operation, Records cannot be Updated.

DBSS Training Centre

CICS

80

Syntax for STARTBR

EXEC CICS STARTBR FILE(filename) RIDFLD(data-area) END-EXEC.


Condition : DISABLED, IOERR, NOTFND, NOTOPEN.

DBSS Training Centre

CICS

81

Reading the Record after STARTBR


Sequentially the Next or Previous Record can be read
by a READNEXT or READPREV. The first READNEXT or READPREV will read the Record where the STARTBR has positioned the File Pointer.

DBSS Training Centre

CICS

82

Syntax of READNext/READPrev
EXEC CICS READNext | READPrev

FILE(name) INTO(data-area)|SET(ptr-ref) RIDFLD(data-area)


END-EXEC.
Condition : DUPKEY, ENDFILE, IOERR, LENGERR, NOTFND.

DBSS Training Centre

CICS

83

ENDBRowse
ENDBRowse terminates a Previously issued STARTBR. SYNTAX :EXEC CICS ENDBR FILE(filename) END-EXEC.
Condition: INVREQ

DBSS Training Centre

CICS

84

RESETBR
Its effect is the same as ENDBR and then giving
another STARTBR. Syntax : EXEC CICS RESETBR FILE(filename) RIDFLD(data-area) END-EXEC.
Condition: IOERR, NOTFND.

DBSS Training Centre

CICS

85

WRITE Command
Adds a new record into the File. For ESDS, RIDFLD is not used but after write
execution, RBA value is returned and Record will be written at the end of the File. For KSDS, RIDFLD should be the Record Key. The record will be written depending on the Key. MASSINSERTion must be done in ascending order of the Key.

DBSS Training Centre

CICS

86

Syntax for WRITE


EXEC CICS WRITE FILE(filename) FROM(data-area) RIDFLD(data-area) END-EXEC.
Condition: DISABLED, DUPREC, IOERR, LENGERR, NOSPACE, NOTOPEN.

DBSS Training Centre

CICS

87

REWRITE Command

Updates a Record which is Previously Read with


UPDATE Option.

REWRITE automatically UNLOCKs the Record after


execution.

DBSS Training Centre

CICS

88

Syntax for REWRITE


EXEC CICS REWRITE FILE(filename) FROM(data-area) END-EXEC.
Condition: DUPREC, IOERR, LENGERR, NOSPACE.

DBSS Training Centre

CICS

89

DELETE Command
Deletes a Record from a dataset. Record can be deleted in two ways,
RIDFLD with the full key in it. and the record read with READ with UPDATE will be deleted.

Multiple Records Delete is possible using Generic


Option.

DBSS Training Centre

CICS

90

Syntax of DELETE
EXEC CICS DELETE FILE(filename) RIDFLD(data-area) END-EXEC.

Optional

Condition: DISABLED, DUPKEY, IOERR, NOTFND, NOTOPEN.

DBSS Training Centre

CICS

91

UNLOCK
To Release the Record which has been locked by READ
with UPDATE Command. Syntax : EXEC CICS UNLOCK FILE(filename) : [other options] END-EXEC.
Condition: DISABLED, IOERR, NOTOPEN.
DBSS Training Centre

CICS

92

General Exceptions
The following Exceptions usually will occur for ALL
CICS File Handling Commands.

FILENOTFOUND, NOTAUTH, SYSIDERR, INVREQ


In Addition to the above, Exceptions shown along the systax will occur.
DBSS Training Centre

CICS

93

Communication With Databases

DBSS Training Centre

CICS

94

CICS - DB2
CICS provides interface to DB2. DB2 requires CICS Attachment Facility to connect
itself to CICS CICS programs can issue commands for SQL services in order to access the DB2 database.
EXEC SQL function [options] END-EXEC

DBSS Training Centre

CICS

95

Operating system

CICS REGION

DB2

REGION

App. Pgm. EXEC SQL..

CICS Attachment Facility

DB2 Database

DB2 Database access by CICS

DBSS Training Centre

CICS

96

RCT Entry
The CICS-to-DB2 connection is defined by creating and
assembling the resource control table (RCT) The information in RCT is used to control the interactions between CICS & DB2 resources DB2 attachment facility provides a macro (DSNCRCT) to generate the RCT. The RCT must be link-edited into a library that is accessible to MVS

DBSS Training Centre

CICS

DB2 - Precompiler
Source Program (EXEC SQL... | EXEC CICS...) DB2 Precompiler | CICS command translator | Compile By COBOL | Linkedit by Linkage editor | Load Module
DBSS Training Centre

97

CICS

98

QUEUES

DBSS Training Centre

CICS

99

Transient data Control


Provides application programmer with a queuing facility Data can be stored/queued for subsequent internal or
external processing Stored data can be routed to symbolic destinations TDQs require a DCT entry Identified by Destination id - 1 to 4 bytes

DBSS Training Centre

CICS

100

TDQs
Intra-partitioned - association within the same CICS
subsystem
Typical uses are - ATI (Automatic Task Inititation ) associated with trigger level - Message switching - Broadcasting etc

Extra-partitioned - association external to the CICS


subsystem, Can associate with any sequential device - Tape,
DASD, Printer etc Typical uses are - Logging data, statistics, transaction error messages - Create files for subsequent processing by Non-CICS / Batch programs
DBSS Training Centre

CICS

101

TDQs
Operations
Write data to a transient data queue (WRITEQ TD) Read data from a transient data queue (READQ TD) Delete an intrapartition transient data queue (DELETEQ TD).

DBSS Training Centre

CICS

102

WRITEQ TD
Syntax :
EXEC CICS WRITEQ TD QUEUE(name) FROM(data-area) [LENGTH(data-value)] [SYSID(systemname)] END-EXEC.
Conditions: DISABLED, INVREQ, IOERR, ISCINVREQ, LENGERR, NOSPACE, NOTAUTH, NOTOPEN, QIDERR, SYSIDERR
DBSS Training Centre

CICS

103

READQ TD
Reads the queue destructively - Data record not
available in the queue after the read.

Syntax :
EXEC CICS READQ TD QUEUE(name) {INTO(data-area) | SET(ptr-ref) } [LENGTH(data-value)] [NOSUSPEND] END-EXEC. Conditions : DISABLED, IOERR, INVREQ, ISCINVREQ, LENGERR, NOTAUTH, NOTOPEN, QBUSY, QIDERR, QZERO, SYSIDERR
DBSS Training Centre

CICS

104

DELETEQ TD
Deletes all entries in the queue Syntax :
EXEC CICS DELETEQ TD QUEUE(name) END-EXEC. Conditions: INVREQ, ISCINVREQ, NOTAUTH, QIDERR, SYSIDERR

DBSS Training Centre

CICS

105

Destination Control Table


DCT is to register the information of all TDQs Destination Control Program (DCP) uses DCT to identify
all TDQs and perform all I/O operations. DFHDCT is a macro to define intra & extra partition TDQs TYPE=INTRA/EXTRA REUSE option specified along with intra partition TDQ tells whether the space used by TDQ record will be removed & reused after it has been read.

DBSS Training Centre

CICS

106

Automatic Task Initiation


Facility through which a CICS transaction can be
initiated automatically DFHDCT TYPE=INTRA
DESTID=MSGS TRANSID=MSW1 TRIGLEV=500 When the number of TDQ records reaches 500, the transaction MSW1 will be initiated automatically

Applications
Message switching & Report printing

DBSS Training Centre

CICS

107

Temporary Storage Control


Provides application programmer the ability to store and
retrieve data in a TSQ Application can use the TSQ like a scratch pad TSQs are
- Created and deleted dynamically - No CICS table entry required if recovery not required - Identified by Queue id - 1 to 8 bytes - Typically a combination of termid/tranid/operid

Each record in TSQ identified by relative position, called


the item number
DBSS Training Centre

CICS

108

TSQs
Operations
Write and Update data Read data - Sequential and random Delete the queue Access Across transactions Across terminals Storage Main - Non-recoverable Auxiliary - Recoverable TST entry required, VSAM file DFHTEMP
DBSS Training Centre

CICS

109

TSQs - Typical uses


Data passing among transactions Terminal Paging Report printing

DBSS Training Centre

CICS

110

Syntax :

WRITEQ TS

EXEC CICS WRITEQ TS QUEUE(name) FROM(data-area) [LENGTH(data-value)] [NUMITEMS(data-area) | ITEM(data-area) [REWRITE] ] [MAIN|AUXILIARY] [NOSUSPEND] END-EXEC. Conditions : ITEMERR, LENGERR, QIDERR, NOSPACE, NOTAUTH, SYSIDERR, IOERR, INVREQ, ISCINVREQ
DBSS Training Centre

CICS

111

READQ TS
Syntax :
EXEC CICS READQ TS QUEUE(name) {INTO(data-area) | SET(ptr-ref) } LENGTH(data-value) [NUMITEMS(data-area)] [ITEM(data-area) | NEXT ] END-EXEC. Conditions : ITEMERR, LENGERR, QIDERR, NOTAUTH, SYSIDERR, IOERR, INVREQ, ISCINVREQ
DBSS Training Centre

CICS

112

DELETEQ TS
Deletes all entries in the queue Syntax :
EXEC CICS DELETEQ TS QUEUE(name) END-EXEC. Conditions: INVREQ, ISCINVREQ, NOTAUTH, QIDERR, SYSIDERR

DBSS Training Centre

CICS

113

INTERVAL AND TASK CONTROL

DBSS Training Centre

CICS

114

ASKTIME
Used to obtain current date and time Syntax :
EXEC CICS ASKTIME[ABSTIME(data-area)] END-EXEC.

EIBDATE and EIBTIME updated with current date and


time ABSTIME returns value of time in packed decimal format

DBSS Training Centre

CICS

FORMATTIME
EXEC CICS FORMATTIME ABSTIME(data-ref) [YYDDD(data-area)] [YYMMDD(data-area)]... etc. [DATE(data-area) [DATEFORM[(data-area)]]] [DATESEP[(data-value)]] [DAYOFMONTH(data-area)] [MONTHOFYEAR(data-area)] [YEAR(data-area)]..... [TIME(data-area) [TIMESEP[(data-value)]]] END-EXEC. Condition: INVREQ

115

Syntax :

DBSS Training Centre

CICS

116

DELAY
Used to DELAY the processing of a task The issuing task is suspended for a specified interval or
Until the specified time Syntax : EXEC CICS DELAY INTERVAL(hhmmss) | TIME(hhmmss) END-EXEC Conditions: EXPIRED, INVREQ

DBSS Training Centre

CICS

117

Used to start a transaction at the specified terminal


and at the specified time or interval Data can be passed to the new transaction Syntax : EXEC CICS START TRANSID(transid) [TERMID(termid) TIME(hhmmss) | INTERVAL(hhmmss) ] END-EXEC Conditions : INVREQ, LENGERR,TERMIDERR, TRANSIDERR
DBSS Training Centre

START

CICS

Other Interval Control Commands

118

POST - to request notification when the specified time

has expired. WAIT EVENT - to wait for an event to occur. RETRIEVE - Used to retrieve the data passed by the START CANCEL -Used to cancel the Interval Control requests. eg. DELAY,POST and START identified by REQID. SUSPEND - Used to suspend a task ENQ - to gain exclusive control over a resource DNQ - to free the exclusive control from the resource gained by ENQ
DBSS Training Centre

CICS

119

Recovery & Restart

DBSS Training Centre

CICS

120

The Need for Recovery/Restart


The possible failures that can occur outside the CICS
system are
Communication failures (in online systems) Data set or database failures Application or system program failures Processor failures & Power supply failures.

Recovery/Restart facilities are required to minimize or if


possible, eliminate the damage done to the online system, in case of the above failures to maintain the system & data integrity.

DBSS Training Centre

CICS

121

RECOVERY
An attempt to come back to where the CICS system or the
transaction was when the failure occurred

Recoverable Resources
VSAM files Intrapartition TDQ TSQ in the auxiliary storage DATA tables Resource definitions & System definition files

DBSS Training Centre

CICS

122

RESTART
To resume the operation of the CICS system or the
transaction when the recovery is completed

DBSS Training Centre

CICS

123

Facilities for Recovery/Restart


Facilities for CICS Recovery/Restart
- Dynamic Transaction Backout - Automatic Transaction Restart - Resource Recovery Using System Log - Resource Recovery Using Journal - System Restart - Extended Recovery Facility (XRF)

DBSS Training Centre

CICS

Dynamic Transaction Backout (DTB)

124

When the transaction fails, backing out the changes made


by the transaction while the rest of the CICS system continues normally is called DTB CICS automatically writes the before image information of the record into the dynamic log for the duration of one LUW ,the work between the two consecutive SYNC points When an ABEND occurs, CICS automatically recovers all recoverable resources using the info. in dynamic log (Set DTB=YES in PCT)

DBSS Training Centre

CICS

125

LUW & SYNC point


The period between the start of a particular set of changes
and the point at which they are complete is called a logical unit of work- LUW The end of a logical unit of work is indicated to CICS by a synchronization point (sync pt). Intermediate SYNC pt. can be done by Syntax : EXEC CICS SYNCPOINT [ROLLBACK] END-EXEC
DBSS Training Centre

CICS

126

LUWs & SYNC pts


|- - - - - - - - - - - - LUW - - - - - - - - - | Task A|---------------------------------------------| SOT EOT-SP

|- - - LUW- - |- - - LUW- - |- - -LUW- - | Task B|---------------->--------------->--------------| SOT SP SP EOT-SP When the failure occurs, changes made within the abending LUW will be backed out.

DBSS Training Centre

CICS

127

Automatic Transaction Restart


CICS capability to automatically restart a transaction after
all resources are recovered through DTB If the transaction requires automatic restart facility, Set RESTART=YES in PCT Care should be taken in order to restart the task at the point where DTB completes in the case of intermediate SYNC point

DBSS Training Centre

CICS

128

Extended Recovery Facility-XRF


XRF is to increase the availability of CICS by
automating the fast recovery of CICS resources There are two systems with same configuration All the resources are shared by the two systems If the failure occurs in one system, the other system will continue The system downtime can be reduced to few minutes if XRF is used

DBSS Training Centre

CICS

Communication Controller (3725)


ACF/NCP Active Session Back-up Session

129

XRF-Concept
3090 MVS/XA ACF/VTAM CICS/MVS

3090
System Files

CICS Files
Application Files

MVS/XA ACF/VTAM CICS/MVS

Active System

Shared Resources

Alternate system
DBSS Training Centre

CICS

130

Program Preparation

DBSS Training Centre

CICS

131

Introduction
Preparing a Program to run in CICS Environment. Defining the Program in the CICS Region. Executing the Program.

DBSS Training Centre

CICS

132

Preparing a Program
CICS requires the following steps to prepare a Program.
Translating the Program. Assemble or Compile the Translator Output. & Link the Program.

DBSS Training Centre

CICS

133

Translation
Translates the EXEC CICS Statements into the
Statements your Language (COBOL) Compiler can Understand. The Translator gives two outputs, a Program Listing as SYSPRINT and a Translated Source in SYSPUNCH. The SYSPUNCH is given as the input to the Program Compiler. If any Copy Books are used in the Program, there should not be any CICS Statements in the Copy Book.

DBSS Training Centre

CICS

134

Compiling or Linking
As the CICS Commands have been translated, The
Compilation of the CICS Program is the same as Language Program. Hence, the Compiler Options can be specified as required.

DBSS Training Centre

CICS

135

Defining the Program


The Application should be defined and Installed into the
PPT. This can be done either by using CEDA Trans. or DFHPPT.

DBSS Training Centre

CICS

136

CICS Supplied Transactions

DBSS Training Centre

CICS

137

CESN/CESF Transactions
To sign on to CICS system CESN [USERID=userid] [,PS=password]
[,NEWPS=newpassword][,LANGUAGE=l] Userid & password values can be from 1-8 chars. In RACF, the Userid given in CESN is verified. NEWPS to change the password and LANGUAGE to choose national language Sign off by CESF which breaks the connection between the user and CICS If the Sign on is done twice for the same userid at the terminal, the previous operator will be signed off
DBSS Training Centre

CICS

CECI - Command Level Interpreter

138

To build and test the effect of EXEC CICS commands CECI ASSIGN is used to get the current userid,sysid,
terminal id, application id etc.. Before using the maps in programs, it can be tested using CECI to check how it appears on the screen. CECI gives the complete command syntax of the specified command. CECI READQ TD QUEUE(TESTL001) will read the current record of the given TDQ

DBSS Training Centre

CICS

CEMT-Master Terminal Transaction



Displays the status of CICS & system resources Alter the status of CICS & system resources Remove the installed resource definitions Perform few functions that are not related to resources

139

CEMT provides the following services

DBSS Training Centre

CICS

CEDF-Execution Diagnostic Facility

140

To test command level application programs interactively CEDF [termid/sysid/sessionid] [,ON/,OFF] Termid - the identifier of the terminal on which the
transaction to be tested is being run Sessionid - To test/monitor a transaction attached across an MRO/ISC session Sysid - To test a transaction across an APPC session

DBSS Training Centre

CICS

141

CEDF - Contd.
The points at which EDF interrupts execution of the
program and sends a display to the terminal At transaction initialization, after EIB has been initialized and
before the app. pgm given control Start of execution of each CICS command (auguement values can be changed at this point) End of execution of each CICS command and before the Handle condition mechanism is invoked (response code values can be changed) At program termination & at normal task termination When an ABEND occurs & at abnormal task termination. EIB values can be changed..& CEBR can be invoked
DBSS Training Centre

CICS

CEBR-Temporary Storage Browse

142

To browse the contents of CICS temporary storage


queues (TSQ) CEBR by default will show the queue associated with the current terminal CEBRL001 which can be overridden to view any other queue TERM to browse TSQ for another terminal QUEUE to make the named queue, current PUT to copy the current queue contents into TDQ GET to fetch TDQ for browsing PURGE erases the contents of the current queue
DBSS Training Centre

CICS

143

Screen Definition Facility SDF - II

DBSS Training Centre

CICS

144

INTRODUCTION - SDF
An interactive tool for defining information to be
displayed on the screen Objects created by SDF are used by various systems like CICS/BMS, IMS, ISPF etc.. The SDF objects are Panel and Panel Groups (etc..) corresponding to map and mapset in CICS/BMS

DBSS Training Centre

CICS

145

SDF Functions
Creation of objects which is common for all the systems Provides functions to alter and test the objects Generation function to create code for the objects like
macro codes for CICS/BMS Provides utilities to print, migrate & convert objects Provides functions to develop application prototypes

DBSS Training Centre

CICS

Panel Commands
DOWN , to browse through the the panels PRESERVE to protect the panel AUTOSAVE to set the automatic save option on commands SAVE to record the changes and CANCEL/CCANCEL to quit the changes TEST to test the appearance of the object Commands are available to edit the panels... like to create,alter & view the fields and its attributes E.g.. ATTRIBUTE,EDIT,SHOW,HIDE etc..

146

SDF has panel commands like TOP BOTTOM UP

DBSS Training Centre

CICS

147

Panel & Line Commands


SDF has got panel commands to do the following.
To browse through the panel To quit/save the changes To protect the panel and to restore the panel in case or errors To test the appearance of the panel Panel editor commands to create, alter & view the fields and its attributes And Line commands to copy, move, delete, repeat & insert lines

DBSS Training Centre

CICS

148

Panels
To create a panel, Enter a existing panel which is to be
used as a skeleton for the new panel OR Enter a device type Panel text can be defined by typing the text in the required panel position in format mode. Variable fields can be defined by variable field marks. and arrays can be defined by specifying a dimension and direction. Variable fields can be defined by variable field marks

DBSS Training Centre

CICS

149

Panels

Contd.

A panel can be included in another panel with few


restrictions Default attributes are assigned to fields which can be changed. E.g.. for attributes are, color,protection,intensity,cursor position,justify, field
format,field validation, modified data flag, etc.

To change the panel,


Enter the panel name and library identifier where the panel
resides

DBSS Training Centre

CICS

150

Panel Groups
A panel group contains information about a group of
panels, and the names of the panels that belong to the panel group. Procedure of Creating and editing panel group is same as panel Define the global parameters of the panel group thru Panel Group Characteristics opt. E.g.. BMS characteristics like generation name(later used in
generation) & logical device code etc.

DBSS Training Centre

CICS

151

Generation
As SDF objects are stored in internal rep. they have to be
generated to be used in applications Output of generation , depends on the object type Panel => Map Panel group => Mapset One or more data structures(used in Cobol) or control blocks (BMS macros) can be generated

DBSS Training Centre

CICS

152

SDF Libraries
Define libraries(created in ISPF) to be used by SDF II to
store and retrieve objects SDF II library is a partitioned data set with a three-level dataset name (project.group.dgipnl) Only the first two levels can be defined & third level added by sdf depends on the object type DGIPNL-for panels, DGIGRP-for panel groups and DGIPSTfor partition sets

'ID' is assigned for each library which is used to search the


objects in the library password can be given to protect the library.
DBSS Training Centre

CICS

153

SDF utilities
Print :- To print utility produces printouts of panels, panel
groups,partition sets etc..

Migration:- To migrate objects from various sources into


SDF libraries. Eg. Maps, map sets & partition sets defined with CICS/BMS macros

Conversion utility :-To convert objects from one target


system to a new target system.

DBSS Training Centre

CICS

154

Application Prototype
To test the flow of panels, before they are incorporated
into application programs. Simulative prototype :- Simulates the primary interaction
between the application & user. Used to validate and determine the initial user requirements before designing the program

Prototype definition
Identify the panel by giving name & library ID Define the prototype rules based on the CURRENT panel,the
ACTION to be performed & NEXT PANEL to be displayed if certain CONDITIONS are met.
DBSS Training Centre

CICS

Sample Macro

155

TULMAP DFHMSD TYPE=MAP,LANG=COBOL,MODE=INOUT, STORAGE=AUTO,SUFFIX=C TULMAP DFHMDI SIZE=(12,60),CTRL=(FREEKB,ALARM,FRSET), COLUMN=1,LINE=1,DATA=FIELD, TIOAPFX=YES,JUSTIFY=(LEFT,FIRST) * *

NAME

AGE

DFHMDF POS=(3,14),LENGTH=6,INITIAL='Name:', * ATTRB=(PROT,NORM) DFHMDF POS=(3,21),LENGTH=10,ATTRB=(UNPROT,BRT,ASKIP) DFHMDF POS=(3,32),LENGTH=1,ATTRB=(PROT,NORM) DFHMDF POS=(4,14),LENGTH=6,INITIAL='Age :', * ATTRB=(PROT,NORM) DFHMDF POS=(4,21),LENGTH=3, ATTRB=(UNPROT,NORM), DFHMDF POS=(4,25),LENGTH=1,ATTRB=(PROT,NORM) DFHMSD TYPE=FINAL
DBSS Training Centre

CICS

156

Thank You

DBSS Training Centre

You might also like