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 .high level lang.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 .

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

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 .

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 :. In CICS.An entity which initiates execution of a task.

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.

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

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

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

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

100-RECV-INPUT. EXEC CICS RETURN END-EXEC. . PERFORM 100-RECV-INPUT. 000-MAINLINE. STOP RUN. MOVE 9 TO WS-LENGTH.CICS 19 Sample Program Contd. PERFORM 200-SEND-OUTPUT. MOVE WS-IN-EMP-CODE TO WS-OUT-EMP-CODE 200-SEND-OUTPUT. PROCEDURE DIVISION. EXEC CICS RECEIVE INTO (WS-INPUT) LENGTH (WS-LENGTH) END-EXEC. 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 .

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

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

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

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

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

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

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 .

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

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

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

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

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

FSET in ATTRB parameter of DFHMDF . ‡ MDT setting/resetting .CNTL=FRSET. defined in map/mapset .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.

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

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

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

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

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 has to be given in the field definition macro. Virtual decimal point or Separate fields approach can be used and for output operations. PICOUT parameter can be given in macro ‡ Decimal Point : For input operations.

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

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 .

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 .

CICS 52 XCTL Syntax EXEC CICS XCTL PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)]] END-EXEC. Conditions : PGMIDERR. NOTAUTH. 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 .

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

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 .

PGMIDERR .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. Condition : NOTAUTH.

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

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

Errors caused by mismatches bet. pgm. 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. Conditions caused by omissions or errors in the application code.CICS 59 POSSIBLE ERRORS ‡ Conditions that aren't normal from CICS's point of view ‡ ‡ ‡ ‡ but that are expected in the pgm. . applications and CICS tables.

System will terminate or suspend the task depends on the exceptional condition occurred . following the command that has failed to execute.Control goes to a label in the program defined earlier by a HANDLE CONDITION command. This state occurs µcause of NO HANDLE /RESP/IGNORE conditions ‡ Pass control to a specified label .Control returns to the next inst.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 . A return code is set in EIBRESP and EIBRCODE. ‡ Rely on the system default action .

CICS 61 HANDLE CONDITION ‡ HANDLE CONDITION condition[(label)]. 'condition' ‡ ‡ specifies the name of the condition.. separately. 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. LENGERR will be handled by system . all the other ERRORs together..

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

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

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 64 PUSH & POP ‡ To suspend all current HANDLE CONDITION. while calling sub-pgms (CALL) ‡ While receiving the control. HANDLE AID and HANDLE ABEND commands. IGNORE CONDITION. ‡ Used for eg.

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

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

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 .

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

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

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

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

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

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

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

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

‡ Establish the pointer to the First Record to be Read ‡ ‡ ‡ ‡ Using StartBr. Browse can be re-positioned. Next and Previous Records can be Read as required Using ReadNext and ReadPrev.CICS 79 Sequential Read ‡ Sequential Read is done by Browse Oper. Records cannot be Updated. . During Browse Operation. End the Browse Operation at last.

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

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

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

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

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

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

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

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

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

‡ 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. ‡ Record can be deleted in two ways. .

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

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

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

CICS 93 Communication With Databases .

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 .

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

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 .

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

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

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

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

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

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

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

the transaction MSW1 will be initiated automatically ‡ Applications Message switching & Report printing .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.

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

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

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

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

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

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

CICS 113 INTERVAL AND TASK CONTROL .

‡ EIBDATE and EIBTIME updated with current date and ‡ time ABSTIME returns value of time in packed decimal format .CICS 114 ASKTIME ‡ Used to obtain current date and time ‡ Syntax : EXEC CICS ASKTIME[ABSTIME(data-area)] END-EXEC.

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

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 .

TRANSIDERR .TERMIDERR. LENGERR.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.

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

CICS 119 Recovery & Restart .

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

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 .

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

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. in dynamic log (Set DTB=YES in PCT) ‡ . CICS automatically recovers all recoverable resources using the info.

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 .

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

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 .

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.

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

a Program Listing as SYSPRINT and a Translated Source in SYSPUNCH. The SYSPUNCH is given as the input to the Program Compiler. 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. .CICS 133 Translation ‡ Translates the µEXEC CICS¶ Statements into the ‡ ‡ ‡ Statements your Language (COBOL) Compiler can Understand.

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

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

CICS 136 CICS Supplied Transactions .

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

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

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 a transaction across an APPC session .To test/monitor a transaction attached across an MRO/ISC session Sysid .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/.OFF] ‡ Termid .

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

current PUT to copy the current queue contents into TDQ GET to fetch TDQ for browsing PURGE erases the contents of the current queue .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.

CICS 143 Screen Definition Facility SDF .II .

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

migrate & convert objects Provides functions to develop application prototypes .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.

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

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. move. alter & view the fields and its attributes ‡ And Line commands to copy. repeat & insert lines . delete.

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. Variable fields can be defined by variable field marks. and arrays can be defined by specifying a dimension and direction.

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

. ‡ 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. 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.CICS 150 Panel Groups ‡ A panel group contains information about a group of ‡ ‡ panels.g.

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

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.

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

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

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

CICS 156 Thank You .

Sign up to vote on this title
UsefulNot useful