CICS

1

CICS
(Customer Information Control System)

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

2

CICS

3

Introduction to CICS

initial version Assembler macro to request CICS services Command Level CICS .Single command can replace series of macros .CICS 4 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 .version commands to request CICS services .high level lang.

Programs are scheduled through jobs ‡ ONLINE SYSTEM 1. 3. Input data is prepared and given in sequence (file) 2. 3. in case of failure. Programs and files can¶t be shared 4. special recovery/restart proc. Data is entered as needed not in sequence (terminal) 2.CICS 5 Batch & Online : Differences ‡ BATCH SYSTEM 1. Processing sequence is predictable and hence restarting the process in case of failure is easy. is unpredictable. is reqd. Transaction can be run at any time . Since processing seq. Programs and files can be shared 4.

Prg Files & Database .CICS 6 CICS & Operating System Operating System CICS Enter Code : User¶s App.

CICS 7 DB/DC System Terminals Data Base Central System .

CICS 8 CICS System Services ‡ ‡ ‡ ‡ ‡ Data-Communication Functions Data-Handling Functions Application Program Services System Services Monitoring Functions .

An entity which initiates execution of a task. In CICS.CICS 9 Task &Transaction ‡ Task :. transaction is identified by the transaction identifier (Trans-id) .A basic unit of work which is scheduled by the operating system or CICS Ex -Read from and write to the terminal ‡ Transaction :.

CICS Application Programming Concepts 10 ‡ Pseudo-Conversational ‡ Multitasking ‡ Multithreading ‡ Quasi-Reentrancy .

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 .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.

..12345 END-EXEC.Program Waits For Response .CICS Conversational Transaction Example 12 PROCEDURE DIVISION.<= User Enters Data END-EXEC.. : FIRST-PROCESS. : process EXEC CICS SEND ----. EXEC CICS RECEIVE ---..SECOND PROCESS. : process .<= TSK1.<= EMP(12345) Details END-EXEC... EXEC CICS RECEIVE ----... * .

CICS Pseudo-Conversational Example Transaction TSK2 Program PROG2 PROCEDURE DIVISION. : EXEC CICS SEND END-EXEC. : EXEC CICS RECEIVE END-EXEC. : EXEC CICS RECEIVE END-EXEC. . EXEC CICS RETURN END-EXEC. 13 Transaction TSK1 Program PROG1 PROCEDURE DIVISION. : 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

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

CICS

16

CICS Program Considerations
‡ Considerations
- Must eventually return control to CICS - Can¶t 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

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

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

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

CICS 20 Basic Mapping Support .

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 .

Native Mode Data Stream Text handling Terminal Paging & Message routing Contents of the screen defined thru¶ BMS is called Map.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. Map is a program written in assembly language.) Construct NMDS .. BMS macros are available for Map coding.

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

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) .

CICS 25 Example Of Symbolic Map 01 EMPRECI. 02 FILLER PIC X(12). 02 EMPNAL PIC S9(4) COMP. 02 FILLER PIC X(03). 02 FILLER PIC X(12). PIC X. 03 EMPNAA PIC X. 02 EMPNAO PIC X(21). 02 EMPNAF 02 FILLER REDEFINES EMPNAF. 02 EMPNAI 01 EMPRECO REDEFINES EMPRECI. . PIC X(21).

Logic Flow BMS source Assembler Physical MAP Symbolic MAP Linkage editor Load module (MVS) .CICS 26 Physical & Symbolic Map .

TIOAPFX=YES 72 contd. STORAGE=AUTO.CICS 27 Map definition Macros General Format 1 setname operation Example EMPMAP DFHMSD 16 operands TYPE=MAP. LANG=COBOL. X X X X * * ANY COMMENTS . MODE=INOUT.

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 .

TIOAPFX=YES. LANG=COBOL.PRINT) X X X X X .FRSET. Example EMPMSET DFHMSD TYPE=&SYSPARM . STORAGE=AUTO.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. CNTL=(FREEKB. MODE=INOUT.

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

CICS 31 Screen Layout &Customer No.Cursor . :&nnnnnnnn ‡ Where & Attribute character n Unprotected numeric .

cc). ATTRB=ASKIP. LENGTH=14 CUSTNO DFHMDF POS=(ll. ATTRB=(UNPROT.FSET.cc).CICS DFHMDF Macro For The Above Layout 32 ‡ Define a field and its characteristics ‡ Example DFHMDF POS(ll. :¶. PICOUT=µ9(8)¶.NUM. INITIAL=µCustomer No. JUSTIFY=RIGHT.IC). LENGTH=8 X X X X X X X X . PICIN=µ9(8)¶.

CICS 33 Attribute character ‡ Invisible one byte character ‡ Defines the characteristics of a field Thru¶ ATTRB param. of DFHMDF.Cursor Control Attribute .Keyboard Attributes .Attributes to control the display intensity of the field . ‡ There are different kinds of attributes .Attribute Related to the Field Modification .

defined in map/mapset .CNTL=FRSET.FSET in ATTRB parameter of DFHMDF .when the user modifies a field on the screen .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 .

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

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

.CICS 37 Cursor Positioning Techniques ‡ Static positioning (map definition) ‡ Dynamic/Symbolic Positioning (app. pgm) ‡ Checking Cursor Position by EIBCPOSN.pgm) ‡ Dynamic/Relative Positioning (app.

ENTER & CLEAR key EIBAID contains .CICS 38 AID KEYS ‡ Indicates the method to initiate the transfer of info.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 . from ‡ ‡ ‡ ‡ ‡ terminal to CICS. recently used AID code Standard AID list . PA keys. PF keys.

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.CICS Numeric Sign/Decimal Pt Handling 39 ‡ Numeric Sign : 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.

CICS 40 SEND MAP ‡ Writes formatted output to a terminal.LENGERR . ‡ 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.

MAPFAIL .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.

CICS 42 Types of BMS Panel operations ‡ ‡ ‡ ‡ ‡ Single Map panel Text Panel Multipage Message Multimap Panel Multimap/Multipage Message .

CICS 43 Screen Design Considerations ‡ Functional Screen Design ‡ User-Friendly Screen Design .

CICS CICS Transaction (Initiation) Flow :Operating System System Services 44 Program Library ACCT Terminal Control 2 3 Account File 1 Storage Manage -ment .

CICS CICS Transaction Flow :-( SEND MAP) Operating System Program Library 45 Menu Screen File Control Account File Program ACCT00 BMS .

CICS 46 CICS Transaction Flow :( RECEIVE & SEND MAPs) Operating System User¶s Next input File Control Account File Program Library 6 8 BMS Program ACCT01 7 .

CICS

47

PROGRAM CONTROL

CICS

48

Program Control Commands
‡ ‡ ‡ ‡ ‡
LINK XCTL RETURN LOAD RELEASE

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

CICS

50

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

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 .

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

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 .

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

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 .

Condition : NOTAUTH.CICS 56 LOAD ‡ To load program/table/map from the CICS DFHRPL ‡ ‡ concatenation library into the main storage Using load reduces system overhead Syntax : EXEC CICS Load Program(name) [SET (pointer-ref)] [LENGTH (data-area)] END-EXEC. PGMIDERR .

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

Working Storage defn Called program .CICS 58 COMMAREA ‡ Data passed to called program using COMMAREA in ‡ ‡ ‡ LINK and XCTL Calling 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 ‡ .

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

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

Syntax : EXEC CICS HANDLE CONDITION ERROR(ERRHANDL) LENGERR(LENGRTN) END-EXEC This example handles DUPREC cond...CICS 61 HANDLE CONDITION ‡ HANDLE CONDITION condition[(label)]. LENGERR will be handled by system . '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. all the other ERRORs together. separately.

CICS 62 Alternative to HANDLE Condition ‡ 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. Later.. On return from the command. If xxx=DFHRESP(NOSPACE) .. it can be tested by means of DFHRESP as follows. .. it contains a return code. or If xxx=DFHRESP(NORMAL) ..

‡ µ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 ...CICS 63 IGNORE CONDITION ‡ IGNORE CONDITION condition condition .

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

CICS 65 Syntax of Push & Pop ‡ Syntax of Push : EXEC CICS Push Handle END-EXEC. ‡ Syntax of Pop : EXEC CICS Pop Handle END-EXEC. .

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) .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.

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

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

CICS

69

File Handling

CICS 70 VSAM Different types of VSAM Datasets used in CICS are : ‡ ESDS ‡ KSDS ‡ RRDS Entry Sequenced Dataset Key Sequenced Dataset Relative Record Dataset .

CICS Provides Exclusive Control.CICS 71 Services Provided By CICS ‡ Basic Operations required for a file are Adding a Record. Opening and closing Files. Journalling. ‡ In Addition. Data Independence. (Record Level Locking). Browsing One or Selected or All Records. Modifying an Existing Record. Deleting an Existing Record. .

Files Cannot be Created. etc.CICS 72 Defining Files ‡ In CICS. ‡ Re-indexing. should be done using IDCAMS Only. Files can be created using IDCAMS Utility. Creating new indexes. .

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

DATASETNAME=NAME.DELETE.ACCMETH=VSAM. SERVRQ=(ADD.OPENED) . FILSTAT=(ENABLED.BROWSE.READ.UPDATE).CICS 74 Syntax of DFHFCT Macro DFHFCT TYPE=FILE.

A number of records ‡ can be added at a time. ‡ Records can be written in any order. .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 inserted. updated or deleted.

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

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

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. .

During Browse Operation. Browse can be re-positioned. . Records cannot be Updated. End the Browse Operation at last.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.

Condition : DISABLED. NOTOPEN. NOTFND. . IOERR.CICS 80 Syntax for STARTBR EXEC CICS STARTBR FILE(filename) RIDFLD(data-area) END-EXEC.

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.

ENDFILE. NOTFND. Condition : DUPKEY. IOERR.CICS 82 Syntax of READNext/READPrev EXEC CICS READNext | READPrev FILE(name) INTO(data-area)|SET(ptr-ref) RIDFLD(data-area) END-EXEC. LENGERR. .

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

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

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

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

.CICS 87 REWRITE Command ‡ Updates a Record which is Previously Read with UPDATE Option. ‡ REWRITE automatically UNLOCKs the Record after execution.

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

‡ Record can be deleted in two ways. ‡ Multiple Records Delete is possible using Generic Option. . and the record read with READ with UPDATE will be deleted.CICS 89 DELETE Command ‡ Deletes a Record from a dataset. RIDFLD with the full key in it.

NOTOPEN. Optional Condition: DISABLED. DUPKEY.CICS 90 Syntax of DELETE EXEC CICS DELETE FILE(filename) RIDFLD(data-area) END-EXEC. IOERR. NOTFND. .

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

CICS 92 General Exceptions ‡ The following Exceptions usually will occur for ALL CICS File Handling Commands. INVREQ In Addition to the above. SYSIDERR. FILENOTFOUND. . Exceptions shown along the systax will occur. NOTAUTH.

CICS 93 Communication With Databases .

EXEC SQL function [options] END-EXEC . ‡ 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.CICS 94 CICS .DB2 ‡ CICS provides interface to DB2.

CICS 95 Operating system CICS REGION DB2 REGION CICS Attachment Facility App. DB2 Database DB2 Database access by CICS . EXEC SQL. Pgm..

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 .

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

CICS 98 QUEUES .

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 .

CICS 100 TDQs ‡ Intra-partitioned .Create files for subsequent processing by Non-CICS / Batch programs .Logging data.Message switching .Broadcasting etc ‡ Extra-partitioned .Tape.association external to the CICS subsystem. statistics.ATI (Automatic Task Inititation ) associated with trigger level . Printer etc Typical uses are . transaction error messages . Can associate with any sequential device .association within the same CICS subsystem Typical uses are . DASD.

.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).

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

ISCINVREQ.Data record not available in the queue after the read. QIDERR. IOERR. NOTOPEN. Conditions : DISABLED. INVREQ. SYSIDERR . LENGERR. ‡ Syntax : EXEC CICS READQ TD QUEUE(name) {INTO(data-area) | SET(ptr-ref) } [LENGTH(data-value)] [NOSUSPEND] END-EXEC. NOTAUTH. QBUSY. QZERO.CICS 103 READQ TD ‡ Reads the queue destructively .

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

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. .

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 .

1 to 8 bytes .Typically a combination of termid/tranid/operid ‡ Each record in TSQ identified by relative position.No CICS table entry required if recovery not required .Identified by Queue id .Created and deleted dynamically .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 . called the item number .

CICS 108 TSQs ‡ Operations ‡ Write and Update data ‡ Read data .Recoverable ‡ TST entry required. VSAM file DFHTEMP .Non-recoverable ‡ Auxiliary .Sequential and random ‡ Delete the queue ‡ Access ‡ Across transactions ‡ Across terminals ‡ Storage ‡ Main .

Typical uses ‡ Data passing among transactions ‡ Terminal Paging ‡ Report printing .CICS 109 TSQs .

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

IOERR. NOTAUTH. ISCINVREQ . LENGERR. Conditions : ITEMERR.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. QIDERR. SYSIDERR. INVREQ.

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

CICS 113 INTERVAL AND TASK CONTROL .

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 .

CICS FORMATTIME EXEC CICS FORMATTIME ABSTIME(data-ref) [YYDDD(data-area)] [YYMMDD(data-area)]. etc. Condition: INVREQ 115 ‡ Syntax : . [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.

INVREQ .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.

CICS 117 START ‡ 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.TERMIDERR. TRANSIDERR . LENGERR.

WAIT EVENT .Used to retrieve the data passed by the START CANCEL -Used to cancel the Interval Control requests.to request notification when the specified time ‡ ‡ ‡ ‡ ‡ ‡ has expired.Used to suspend a task ENQ . SUSPEND .to gain exclusive control over a resource DNQ . RETRIEVE .POST and START identified by REQID. DELAY.to wait for an event to occur.to free the exclusive control from the resource gained by ENQ . eg.CICS Other Interval Control Commands 118 ‡ POST .

CICS 119 Recovery & Restart .

in case of the above failures to maintain the system & data integrity. eliminate the damage done to the online system. .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.

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 .

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

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

in dynamic log (Set DTB=YES in PCT) ‡ .the work between the two consecutive SYNC points When an ABEND occurs. CICS automatically recovers all recoverable resources using the info.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 .

can be done by Syntax : EXEC CICS SYNCPOINT [ROLLBACK] END-EXEC . Intermediate SYNC pt.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).

.......|.LUW..CICS 126 LUWs & SYNC pts |......LUW .. changes made within the abending LUW will be backed out... ..|.......| Task A|---------------------------------------------| SOT EOT-SP |..LUW....| Task B|---------------->--------------->--------------| SOT SP SP EOT-SP When the failure occurs.-LUW.

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 .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.

the other system will continue The system downtime can be reduced to few minutes if XRF is used .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.

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 .

CICS 130 Program Preparation .

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

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

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

the Compiler Options can be specified as required. .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.

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

CICS 136 CICS Supplied Transactions .

the previous operator will be signed off .PS=password] ‡ ‡ ‡ ‡ ‡ [.LANGUAGE=l] Userid & password values can be from 1-8 chars.CICS 137 CESN/CESF Transactions ‡ To sign on to CICS system ‡ CESN [USERID=userid] [. In RACF. 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 Userid given in CESN is verified.NEWPS=newpassword][.

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

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 .

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

& CEBR can be invoked ‡ ‡ ‡ ‡ ‡ . 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. after EIB has been initialized and before the app.Contd.. ‡ The points at which EDF interrupts execution of the program and sends a display to the terminal ‡ At transaction initialization. EIB values can be changed.CICS 141 CEDF .

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 .

II .CICS 143 Screen Definition Facility SDF .

IMS.CICS 144 INTRODUCTION . ISPF etc..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.) corresponding to map and mapset in CICS/BMS .. The SDF objects are Panel and Panel Groups (etc.

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 .

CICS Panel Commands µDOWN .alter & view the fields and its attributes E.g. 146 ‡ SDF has panel commands like µTOP¶ µBOTTOM¶ µUP¶ ‡ ‡ ‡ ‡ ‡ .EDIT.HIDE etc. ATTRIBUTE. 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....SHOW..

‡ 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. delete.CICS 147 Panel & Line Commands ‡ SDF has got panel commands to do the following. repeat & insert lines . alter & view the fields and its attributes ‡ And Line commands to copy. move.

and arrays can be defined by specifying a dimension and direction. Variable fields can be defined by variable field marks . Variable fields can be defined by variable field marks. 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.CICS 148 Panels ‡ To create a panel.

‡ A panel can be included in another panel with few ‡ restrictions Default attributes are assigned to fields which can be changed. ‡ Enter the panel name and library identifier where the panel resides . ‡ To change the panel.field validation.protection. modified data flag.intensity.justify.cursor position.g. for attributes are. E. field format.CICS 149 Panels Contd. ‡ color.. etc.

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

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 . they have to be ‡ ‡ generated to be used in applications Output of generation .CICS 151 Generation ‡ As SDF objects are stored in internal rep.

.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. 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.group.dgipnl) Only the first two levels can be defined & third level added by sdf depends on the object type ‡ DGIPNL-for panels.

To print utility produces printouts of panels. Maps.partition sets etc. panel groups.To migrate objects from various sources into SDF libraries. Eg. ‡ Migration:. map sets & partition sets defined with CICS/BMS macros ‡ Conversion utility :-To convert objects from one target system to a new target system.. .CICS 153 SDF utilities ‡ Print :.

before they are incorporated into application programs. ‡ 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.Simulates the primary interaction between the application & user.CICS 154 Application Prototype ‡ To test the flow of panels.the ACTION to be performed & NEXT PANEL to be displayed if certain CONDITIONS are met. . ‡ Simulative prototype :.

LENGTH=10.MODE=INOUT.NORM) DFHMDF POS=(4.14).BRT.ATTRB=(PROT. * ATTRB=(PROT.LANG=COBOL.FIRST) * * NAME AGE DFHMDF POS=(3.21).NORM). ATTRB=(UNPROT.ASKIP) DFHMDF POS=(3.FRSET).DATA=FIELD.LINE=1.LENGTH=6.LENGTH=1.ATTRB=(PROT.INITIAL='Name:'.60).ALARM.32). * ATTRB=(PROT. DFHMDF POS=(4.ATTRB=(UNPROT.SUFFIX=C TULMAP DFHMDI SIZE=(12.LENGTH=6.JUSTIFY=(LEFT. TIOAPFX=YES. COLUMN=1.INITIAL='Age :'.14).NORM) DFHMDF POS=(3.CICS Sample Macro 155 TULMAP DFHMSD TYPE=MAP.25).NORM) DFHMDF POS=(4.CTRL=(FREEKB. STORAGE=AUTO.LENGTH=1.LENGTH=3.NORM) DFHMSD TYPE=FINAL .21).

CICS 156 Thank You .

Sign up to vote on this title
UsefulNot useful