You are on page 1of 196

CICS

. Customer Information Control System Training Material g

TIL
1 ICIC010.2.SL

Customer Information Control System

Objectives of the course To get an introduction to CICS and CICS`s working environment To learn to write programs effectively in CICS To learn to develop efficient CICS applications

ICIC010.2.SL

Customer Information Control System

SESSION # 1
3 ICIC010.2.SL

Batch System
Input

V/S

Online System
Data from terminal. Random, concurrent. Can be entered as data arrive. Concurrent. Instant. I/O can be concurrent. Messages thrown to console, Updated files System log, Reports.
ICIC010.2.SL

Data from card,tape,disk. In Batch, Sequential, Scheduled E.g. Keypunch,Data Coding

Update Reserved during a job. Of file Other jobs have to wait. File I/O I/O must be in sequence. Output Printed reports,O/P files. reports O/P files

Batch System
Start of job Process mode

V/S

Online System

Operator (or OS) initiates Entering Trans-ID job. triggers the transaction. Single task & thread Multitask & Multithread Priority in job scheduling. Priority processing. Each transaction . Almost Instantaneous.

End of job Each job. Turnaround Usually much longer.

Resources Less Usage. Appln. A l Monthly S l R M thl Sales Report. t


5

More Usage. Airline R Ai li Reservation . ti


ICIC010.2.SL

INTRODUCTION TO CICS
CICS is one of the most popular DB / DC (Data Base / Data Communication) Control System. Also, Also it is an Online Transaction Processor OLTP OLTP. Macro Level : Initial version of CICS was Macro Level, under which application programs used Assembler-macros f d hi h li i dA bl for requesting CICS services. This work was quite cumbersome & required special skills. q p Command Level : In the later upgraded version, CICS commands are high level language version of macros, one macros command achieves service achieved by series of macros.Development became more easier.
6 ICIC010.2.SL

INTRODUCTION TO CICS (contd...)

Product CICS / MVS CICS / OSVS Ver. Ver 2 Release 1 Ver. 1 Release 7

Operating System. MVS/XA MVS/ESA MVS/XA,MVS/ESA MVS/XA,MVS VSE VM/SP OS/2


7 ICIC010.2.SL

CICS / DOS/VSE Ver. 1 Release 7 CICS / VM CICS / OS / 2 Ver. 2 Release 1

FEATURES OF CICS
Easy to develop on-line applications. y p pp Common interface to database and Data sets. Better response time. Easy to customize. Coding similar to high level Languages. g g g g

Continued ...
8 ICIC010.2.SL

FEATURES OF CICS(Contd...)

No need to code for displaying data onto the screen. Easy forms development using BMS facility. Device independence. Data independence. Sharing of code between applications.

ICIC010.2.SL

VSAM Disk Files

CICS

Appln. Program

VTAM / TCAM Terminal Users


10 ICIC010.2.SL

OPERATING SYSTEM D t b Database Access Method (DL/1,DB2) Data Storage CICS / MVS System Services Monitoring Functions Application Program Services Data Access Method (VSAM, BDAM) Telecommunication Access Method (VTAM, TCAM) Other S t Systems

Terminals Data-Comm Functions

Data-handling Functions

CICS Application Programs (COBOL, PL/1 (COBOL PL/1, Assembler)

11

ICIC010.2.SL

VOCABULARY
Multi User Multi Tasking Multi Programming Multi Threading Job Task Transaction Reentrancy Q Quasi Reentrancy y

12

ICIC010.2.SL

MULTITASKING

Multitasking means that the operating system (OS) allows more than one task to be executed concurrently, regardless of whether the tasks use the same program or different p og a s. programs.

13

ICIC010.2.SL

MULTITHREADING

Multithreading is the system environment where the tasks are sharing the same program under the multitasking environment. Under the multithreading environment, a program is shared by several b se eral tasks conc rrentl For each task, the program concurrently. task must work as if it were executing instructions exclusively for each task.

14

ICIC010.2.SL

REENTRANCY

In order to make multithreading possible, an application program must be reentrant. A reentrant program is a program which does not modify itself so that th t it can reenter to itself and continue processing after an t t it lf d ti i ft interruption by the operating system.

15

ICIC010.2.SL

CICS COMPONENTS
Control Programs ( Management Modules) Control Tables Control Blocks CICS core nucleus consists of Control Programs & their corresponding Control Tables.

16

ICIC010.2.SL

Control Program
File Control Program Interval Control Program g Journal Control Program Program Control Program Task Control Program Storage C S Control P l Program Terminal Control Program

Control Tables
File Control Table Interval Control Table Journal Control Table Processing Program Table Program Control Table Storage C S Control T bl l Table Terminal Control Table

Temporary Storage Program Temporary Storage Table Transient Data Program Destination Control Table
17 ICIC010.2.SL

CONTROL BLOCKS
EXEC Interface Block (EIB) : CICS provides system related information to each task in the form of Exec interface block. Since the information is automatically provided by CICS the application program can use it straightaway. Some of th most commonly used EIB information are S f the t l d i f ti EIBAID : Value of last Attention identifier key pressed (1 BYTE ). Continued...
18 ICIC010.2.SL

EIB INFORMATION (contd...)


EIBCALEN : Length of DFHCOMM AREA ( S9 (4) COMP ) . : Date when this task is Initiated. ( S9 (4) COMP-3 ) COMP 3 ). : Function code of the last CICS command in i HEX (2 BYTES). BYTES) : Response code of the last function ( 6 BYTES ) Continued... Continued
19 ICIC010.2.SL

EIBDATE

EIBFN

EIBRCODE

EIB INFORMATION (contd...)


EIBTASKN : Task Number of the Current Task ( S9 (7) COMP 3 ) COMP-3 ). : Time when the Current Task was started ( S9 (7) COMP-3 ). : Terminal-ID from where task Initiated ( 1-4 characters ). : T Transaction-id of Current Task i id f C T k (1-4 characters ).

EIBTIME

EIBTRMID

EIBTRNID

20

ICIC010.2.SL

CICS STARTUP:
Starting up of an CICS system involves executing a job (JCL) like any other batch-job. j p y g ( ) Main job-step is System Initialization Program (SIP). SIP loads corresponding System Initialization Table (SIT), based on which SIP further loads all control programs and tables and performs initial house-keeping tasks.Then CICS is ready to execute CICS transactions within its own region.

CICS SHUTDOWN :
The computer operator terminates CICS job by entering Master Terminal Transaction (CEMT) with shut-down option. j p g, , p p Then CICS job produces various logs, statistics, dumps & reports
21 ICIC010.2.SL

GENERAL SYNTAX OF CICS STATEMENT


EXEC CICS <FUNCTION> Option 1(arguments ) Option2(arguments ) ... i ( ) END EXEC. Basic Steps in CICS Application Program Development : CICS Commands are embedded in the host language e.g. eg COBOL, PL/I . Translate, Compile, Link-edit an application program into T l C il Li k di li i i Program library(Load-lib). Continued...
22 ICIC010.2.SL

Basic Steps in CICS Application Program Development :


Translate, compile and linkedit a CICS application program into the CICS application program library (LOADLIB). Define Trans ID into PCT with associated program name. Trans-ID name Define program into PPT . Register Terminal into TCT. Register th R i t the user in SNT(Sign-On T bl ) i SNT(Si O Table). Other CICS tables e.g. FCT, JCT, DCT must be prepared for the application programming if required. Sign-On CICS and enter Trans-ID.

23

ICIC010.2.SL

Additional Preparation Required

In addition to the above basic procedures, the detailed CICS p , system environment must be prepared properly by the system programmers or application programmers. For example : The terminal must be registered in the TCT. The CICS user identifier must be registered in the SNT. h id ifi b i di h ( , , ) prepared Other CICS tables (viz. FCT, JCT, DCT) must be p p for the application program, if required.

24

ICIC010.2.SL

STEPS IN APPLICATION DEVELOPMENT


COBOL Program with CICS Statements CICS Preprocessor

COBOL Source Code

Object Module

COBOL Compiler

Linker

Load Module 25 ICIC010.2.SL

INITIATION OF CICS TRANSACTION

There are five ways of initiating CICS transactions : 1. 1 By a transaction identifier entered in a terminal with ENTER key. 2. By a transaction identifier associated with a terminal for pseudo-conversation. 3. By the START command, which initiates a transaction specified in the p p parameter. 4. By the Automatic Task Initiation (ATI). 5. By a 3270 attention identifier. For an IBM 3270 type terminal any of the PF and PA keys could be defined in PCT to initiate a CICS transaction.

26

ICIC010.2.SL

USER ENTERS TRANS-ID (AAAA) PCT Transaction AAAA BBBB CCCC PPT Program AAAPGM1 BBBPGM1 CCCPGM2

Program AAAPGM1 BBBPGM1 CCCPGM2 CICS locates trans-id AAAA in program control table CICS Address Space Location On Disk In Storage g On Disk CICS locates program AAAPGM1 in the processing program table CICS locates load module AAAPGM1 on disk, loads it into memory, and starts the task

BBBPGM1

Library y

Load Module

ORDPROG AAAPGM1 ORGPROG BBBPGM1 DDMPROG CCCPGM2

AAAPGM1

27

ICIC010.2.SL

SIGN ON The primary function of CICS SIGN ON is to associate CICS user identifier with CICS system in terms of security, Priority and other functions. CESN or CSSN is CICS supplied transaction which prompts SIGN ON screen as shown. Complete SIGN ON by giving CICS/VS SIGNON correct USERID & PASSWORD enter userid Unless SIGN ON process is complete NO CICS transaction can USERID: be invoked. PASSWORD:

SIGN OFF- Primary functions of SIGN OFF is to disassociate


CICS user identifier from CICS Region. For SIGN OFF use CICS supplied transaction CSSF CSSF.
28 ICIC010.2.SL

CICS SERVICES
Terminal Control Program Control File Control Basic Mapping Support ( B M S ) Transient Data & Temporary Storage Control Interval & Task Control Storage Control
29 ICIC010.2.SL

TERMINAL CONTROL SERVICE

SESSION # 2
30 ICIC010.2.SL

INTRODUCTION

The CICS Terminal Control Program (TCP) provides communication services between application programs and terminals, using the information defined in the Terminal Control Table. Usually, unformatted screens are used for the T i l C t l O th Terminal Control Operations. ti

31

ICIC010.2.SL

TERMINAL CONTROL COMMANDS IN CICS


SEND RECEIVE To print text onto the terminal screen To receive data into a variable from the terminal T send data to terminal and receive To dd t t t i l d i data from terminal

CONVERSE

ISSUE PRINT To print all data onto the screen on printer ISSUE COPY To copy one terminal screen to other HANDLE AID T handle keys pressed on terminal To h dl k d t i l
32 ICIC010.2.SL

SEND COMMAND SYNTAX


EXEC CICS SEND FROM (Literal / Variable) LENGTH (Literal / Variable) END-EXEC. END EXEC

Eg: g:

EXEC CICS C C CS SEND FROM (Enter the Number ) LENGTH (20) END-EXEC. END EXEC EXEC CICS SEND FROM (SCR-MESSAGE) LENGTH (WS-MESSAGE-LEN) END-EXEC. (WS-MESSAGE-LEN is a WO (WS SS G N s WORKING-STORAGE v NG S O G variable ) be
33 ICIC010.2.SL

RECEIVE COMMAND SYNTAX


EXEC CICS RECEIVE INTO (Variable) LENGTH (Literal / Variable) END-EXEC. Eg: EXEC CICS RECIEVE INTO (SCR-VAR) LENGTH ( 0) NG (20) END-EXEC. EXEC CICS RECIEVE INTO (SCR-VAR) (SCR VAR) LENGTH (WS-MESSAGE-LEN) END-EXEC. (SCR-VAR is WS variable into which value is to be received)
34 ICIC010.2.SL

CONVERSE COMMAND
The CONVERSE Command performs the combined functions of the SEND command with Invite option and RECIEVE command. command The CONVERSE command sends data to other partner transaction during the conversation, automatically switches the t ti d i th ti t ti ll it h th communication state from the send state to receive state, inviting the other partner transaction to send the data and then receives data from other partner transaction. This CONVERSE command is used in Inter System Communication type of Intercommunication . Continued... C ti d
35 ICIC010.2.SL

CONVERSE COMMAND SYNTAX


EXEC CICS CONVERSE FROM (Literal/Variable) [FROMLENGTH (Length)] INTO (Variable) [TOLENGTH (Length)] [ERASE] END-EXEC. Eg: EXEC CICS CONVERSE FROM (Enter a Number) INTO (WS -VAR) VAR) ERASE END-EXEC. (WS-VAR is WORKING-STORAGE (WS VAR i a WORKING STORAGE variable) i bl )
36 ICIC010.2.SL

ISSUE PRINT COMMAND


The ISSUE PRINT Command is used to make a hard copy of Screen on the local printer. Syntax: EXEC CICS ISSUE PRINT END-EXEC. END EXEC

37

ICIC010.2.SL

ISSUE COPY COMMAND


The ISSUE COPY Command is used to copy a screen image of the terminal into another terminal. Syntax: EXEC CICS ISSUE COPY TERMID (T i l Name) (Terminal N ) END-EXEC.

38

ICIC010.2.SL

HANDLE AID COMMAND SYNTAX


EXEC CICS HANDLE AID Attention K 1 (R i 1) A i Key1 (Routine1) Attention Key2 (Routine2) Attention Key3 (Routine3) y ( ) END-EXEC. EXEC CICS HANDLE AID PF1 (PF1-Routine) PF2 (PF2 R ti ) (PF2-Routine) END-EXEC. ( PFx-Routines are to be coded by Application Programmer )
39 ICIC010.2.SL

Eg:

SOME TIPS ON HANDLE AID COMMAND


HANDLE AID tells the program what to do when the user presses an Attention Identifier -AID key. It itself does not detect the key pressed. It is always used in association with RECEIVE i l di i ti ith command. DFHAID is the library member having all the key valuesContinued

40

ICIC010.2.SL

TIPS ON HANDLE AID COMMAND(contd...)


In WORKING-STORAGE SECTION. * DFHAID is Copy Book to be included. s oo o c uded. COPY DFHAID. The system variable EIBAID holds the AID value after RECEIVE command. This value is compared with AID key definition from copy book. Thus, HANDLE AID PF3 is equivalent to IF EIBAID = DFHPF3

41

ICIC010.2.SL

PROGRAM CONTROL

SESSION # 3
42 ICIC010.2.SL

PROGRAM CONTROL IN CICS


OBJECTIVES : To know more on program control, inter-program control inter program communication and inter-program Calls Data transfer between programs Modes of CICS application programming pp p g g Introduction to COBOL-CICS macro level programming

43

ICIC010.2.SL

PROGRAM CONTROL
Program Control Program is responsible for managing the use of all application programs The PCP uses the information available in PPT to manage the flow of control between programs

Functions of Program Control are


To load programs into virtual storage To monitor the flow of control between CICS and Application p g programs To monitor the flow of control between application programs

44

ICIC010.2.SL

INTERPROGRAM COMMUNICATION Passing data between programs


Sending program specifies the data area, which is to pass data to the calling program in the WORKING-STORAGE SECTION. Receiving program receives it into the data area defined in the LINKAGE SECTION. Normally the LS area is DFHCOMMAREA. The length of the COMMAREA passed by the program is available in the system variable EIBCALEN in DFHEIBLK copybook. copyboo .
45 ICIC010.2.SL

PASSING DATA BETWEEN PROGRAMS


TRANSID: TRN1 TRANSID: TRN2 COMMAREA

Program 1 g
Working-storage Section

Program 2
Linkage Section. DFHCOMMAREA

COM Procedure Division. d i ii .... RETURN TRANSID(TRN2) COMMAREA(COM)


46

EIBCALEN contains the Size of COM

ICIC010.2.SL

COMMANDS FOR PROGRAM CONTROL LOAD Load a program into the CICS address space RELEASE Release the program from CICS address space LINK Call another program at the lower logical level XCTL Transfer control to another program at the same logical level RETURN Return to i immediate higher logical level di hi h l i l l l

47

ICIC010.2.SL

LOAD command
The LOAD Command is used to load a program or table which is independently compiled or assembled & link-edited and registered in PPT . i di This command is useful for loading a table or application g program dynamically. That is, as an application, a table can be coded in Assembler, assembled and link-edited. Then COBOL program can load it as a table. table Continued...
48 ICIC010.2.SL

LOAD command Syntax


EXEC CICS LOAD PROGRAM (Program Name) [SET (P i (Pointer Reference)] R f )] [LENGTH (Data Area Length)] [LENGTH (Data Area Length)] g [ENTRY (Pointer Reference)] [HOLD] END EXEC END-EXEC .

49

ICIC010.2.SL

LOAD command Syntax

Important Parameters :

PROGRAM - Program to be loaded into CICS address space SET Pointer reference to the address of Table/Program/Map LENGTH S9(4) COMP. Length of module (if length < 32 k) FLENGTH S9(8) COMP. (if length > 32 k) HOLD Module resident in memory even when task terminates Module

50

ICIC010.2.SL

LOAD command
Example: EXEC CICS LOAD PROGRAM (lodprg) SET (ptrvar) LENGTH (l (lenvar) ) END-EXEC . Exceptions: PGMIDERR Program not found LENGERR Load module > 32 K NOAUTH Security check error

51

ICIC010.2.SL

RELEASE command
Release Command is used to release a program or table which has been loaded previously previously. Name of program must be specified in PROGRAM parameter. t

52

ICIC010.2.SL

RELEASE command Syntax

EXEC CICS RELEASE PROGRAM ( G (Program Name) ) END-EXEC. Parameters : PROGRAM - Name of the program to be released

53

ICIC010.2.SL

LINK command d
The LINK Command is used to pass Control from an application program at one logical level to another application program at the next lower logical level. level The calling program expects control to be returned to it. Data can be passed to the called program through communication area parameter called COMMAREA. This command is the equivalent of CALL in COBOL.

54

ICIC010.2.SL

LINK command syntax


EXEC CICS LINK PROGRAM (P (Program N Name) ) COMMAREA (Data-Area) LENGTH (Len) ( ) DATALENGTH (Len) INPUTMSG (Data-Area) INPUTMSGLEN (Len) SYSID (value) SYSCONRETURN TRANSID ( l ) (value) END-EXEC.

55

ICIC010.2.SL

LINK command Syntax


Important Parameters : PROGRAM COMMAREA LENGTH INPUTMSG INPUTMSGLEN - Program to be linked. - Data area to be passed to the called program - S9(4) COMP. Length of data area to be passed - Data area to b passed to the called be d h ll d program as an input ( ) g - S9(4) COMP. Length of data area to be passed as input

56

ICIC010.2.SL

LINK flow of control

CICS SYSTEM

First Program: LINK

Second Program: g RETURN

57

ICIC010.2.SL

XCTL command d
The XCTL Command is used to pass control from a p application program to another application program at the same logical level. It does not expect control to be returned. Like LINK, in this command also, data can be passed through COMMAREA to the called program. This command is similar to the CHAIN command in COBOL.

58

ICIC010.2.SL

XCTL command Syntax

EXEC CICS XCTL PROGRAM (Program Name) COMMAREA (Data-Area) LENGTH (L ) (Len) INPUTMSG (Data-Area) INPUTMSGLEN (Len) END-EXEC.

59

ICIC010.2.SL

XCTL command Syntax y


Important Parameters :

PROGRAM COMMAREA LENGTH INPUTMSG INPUTMSGLEN

- Program to be XCTLed. g - Data area to be passed to the called program - S9(4) COMP. Length of data area to be COMP passed - Data area to be passed to the called program as an i input - S9(4) COMP. Length of data area to be p passed as input p
60 ICIC010.2.SL

XCTL flow of control

CICS SYSTEM

First Program: XCTL

Second Program: RETURN

61

ICIC010.2.SL

DIFFERENCE BETWEEN LINK & XCTL Program 1. g LINK CICS Program 2.

Program 1. XCTL CICS Program 2.

62

ICIC010.2.SL

RETURN command syntax

EXEC CICS RETURN TRANSID (TRNID) COMMAREA (Commarea) LENGTH (Length of Commarea) IMMEDIATE INPUTMSG (Data-Area) INPUTMSGLEN (Len) ( ) END-EXEC.

63

ICIC010.2.SL

RETURN command syntax


Important Parameters : TRANSID COMMAREA LENGTH IMMEDIATE - Transaction id of the next program to start after the return of the current one. - Data area to be passed to the next program - S9(4) COMP. L th of d t area t b COMP Length f data to be passed - Parameter to start the next transaction immediately after the execution of the RETURN command, without user intervention
64 ICIC010.2.SL

Modes of Application Programming

CONVERSATIONAL NON CONVERSATIONAL PSEUDO CONVERSATIONAL

65

ICIC010.2.SL

Modes of Application Programming


Conversational Direct interaction of user with the system System waits for the user input y p Non Conversational Only O l 1 request from user to system tf t t

Continued... Continued
66 ICIC010.2.SL

Modes of Application Programming


Pseudo Conversation User interaction with the system System releases the resources associated with the program while waiting for user input System regains the resources when user y g gives input

67

ICIC010.2.SL

RESTRICTIONS in COBOL when using CICS

Data related entries cannot be used in ENVIRONMENT DIVISION & DATA DIVISION. Following statements in COBOL cannot be used in CICS. IDENTIFICATION DIVISION No restrictions ENVIRONMENT DIVISION SELECT Statement Continued...
68 ICIC010.2.SL

RESTRICTIONS in COBOL when using CICS

DATA DIVISION FD E t Entry REPORT SECTION PROCEDURE DIVISION SORT RELEASE RETURN Debugging Statements EXHIBIT TRACE Continued...
69 ICIC010.2.SL

RESTRICTIONS in COBOL when using CICS PROCEDURE DIVISION I/O Statements ACCEPT DISPLAY File Handling commands OPEN CLOSE READ WRITE REWRITE DELETE Continued...
70 ICIC010.2.SL

RESTRICTIONS in COBOL when using CICS

PROCEDURE DIVISION Program Termination commands STOP RUN EXIT PROGRAM GOBACK String Handling statements STRING UNSTRING INSPECT EXAMINE Continued...
71 ICIC010.2.SL

RESTRICTIONS in COBOL when using CICS

PROCEDURE DIVISION Calendar commands CURRENT-DATE DATE DAY

72

ICIC010.2.SL

FILE CONTROL

SESSION # 4
73 ICIC010.2.SL

INTRODUCTION
The CICS File Control Program (FCP) provides application programs with services to Read Update Add and Read, Update, Add, Delete records in a file (dataset). In addition it makes application programs independent of the structure of the database, while it manages exclusive control over the records, in order to maintain the data integrity during record updates. CICS supports the following VSAM Datasets : LDS : Linear Data Set ESDS : Entry Sequenced Data Set KSDS : Key Sequenced Data Set RRDS : Relative Record Data Set Continued...
74 ICIC010.2.SL

FILE CONTROL SERVICE(contd) ( )


Data independence is a concept of program being independent of structure of data access methods. methods CICS File Control provides data independence to application programs,so programmer does not have to be concerned with data dependent COBOL parameters or JCL asd ihd d d INPUT-OUTPUT SECTION SELECT statement FD entry OPEN/CLOSE JCL Continued... C ti d
75 ICIC010.2.SL

FILE CONTROL SERVICE(contd) ( )


Data set names have to be registered in File Control Table (FCT) by System Programmer to specify characteristics of file. Files are automatically opened and closed by Master ) Terminal Transaction ( CEMT). During Update, a program gets exclusive control over the record being updated Continued...
76 ICIC010.2.SL

FILE CONTROL SERVICE(contd)


Available Commands READ WRITE : Read a Record :Write a R W it Record d

REWRITE : Update a Record DELETE : Delete a Record UNLOCK : To release Exclusive control acquired for update
77 ICIC010.2.SL

READ COMMAND SYNTAX


EXEC CICS READ INTO (rec-area) // Record to be read LENGTH (length) // Length of record DATASET (filename) // File name RIDFLD (k (key-area) ) // Key K [GENERIC KEYLENGTH( )] // Partial key [ [GTEQ / EQUAL] ] // Appropriate Condition pp p [UPDATE] // Read for UPDATE END-EXEC. Eg: EXEC CICS READ INTO ( CustRec) DATASET (CustMast) END-EXEC. END EXEC
78 ICIC010.2.SL

EXAMPLE
Suppose that file FILEAAA has records in the following order : BO001 BC001 DC001 DC002 NY000 NY001 NY002 PH001 PH002
79 ICIC010.2.SL

WORKING-STORAGE SECTION. 77 WK-LEN 01 FILE-IOAREA. FILE IOAREA. 05 REC-A. 10 REC-A-KEY 15 REC-A-KEY-CITY 15 REC-A-KEY-SEQ Q 10 REC-A-DETAIL . . PROCEDURE DIVISION. MOVE 35 TO WK-LEN. MOVE NY001 TO REC-A-KEY. EXEC CICS READ DATASET(FILEAAA) INTO(FILE-IOAREA) RIDFLD(REC-A-KEY) LENGTH(WK-LEN) ( ) END-EXEC.

PIC S9(4) COMP.

PIC XX. PIC 999. PIC X (30).

80

ICIC010.2.SL

READ COMMAND SYNTAX


EXCEPTIONS: LENGERR Record length mismatch with file INVREQ Read ope a o not permitted as NV Q ead operation o pe ed It is not mentioned in the FCT Record is locked NOAUTH Resource acquisition failed NOTFND Record not found ENDFILE End of File

81

ICIC010.2.SL

REWRITE COMMAND

A combination of the READ command with the UPDATE option and the REWRITE command is used to update a record. Between these two commands, exclusive control over the record will be maintained for this task, so that no other task can access this record for update.

82

ICIC010.2.SL

REWRITE COMMAND SYNTAX


EXEC CICS REWRITE FROM (rec-area) DATASET (filename) LENGTH (length) END-EXEC. END EXEC g Eg: EXEC CICS REWRITE FROM (CustRec) LENGTH (20) DATASET (CustMast) END-EXEC.

83

ICIC010.2.SL

WRITE COMMAND SYNTAX


EXEC CICS WRITE FROM (rec-area) LENGTH (length) DATASET (filename) RIDFLD (key-area) MASSINSERT // Allows group of records All f d END-EXEC. // simultaneously g Eg: EXEC CICS WRITE FROM (FILE-IOAREA) LENGTH (WK-LEN) DATASET (FILEAAA) RIDFLD(REC-A-KEY) END-EXEC. END EXEC
84 ICIC010.2.SL

DELETE COMMAND SYNTAX


// To delete a record after it has been Read EXEC CICS DELETE DATASET (filename) END-EXEC. // To delete a record/group satisfying certain condition EXEC CICS DELETE DATASET (filename) RIDFLD(data-area) [GENERIC] [RBA/RRN] END-EXEC.
85 ICIC010.2.SL

UNLOCK COMMAND SYNTAX


EXEC CICS UNLOCK DATASET (filename) END-EXEC. Release EXCLUSIVE control and terminate MASSINSERT. g p While using WRITE command with MASSINSERT option, Application has Exclusive control over whole file.

86

ICIC010.2.SL

BROWSE COMMANDS
CICS provides a special set of browse commands STARTBR READNEXT READPREV RESETBR ENDBR Continued...
87 ICIC010.2.SL

ORDER OF BROWSE OPERATION


EVENTS 1. Start. 2. Establish starting position 3. Retrieve a record. COMMANDS STARTBR READNEXT OR READPREV

4. If processing of the record is required, then process and go to step 3. 5. 5 If more records are required, d i d then go to step 3. 6. If it is required to establish another position, then restablish the new position and go to step 3. RESETBR 7. Terminate the BROWSE operation. ENDBR 8. End.
88 ICIC010.2.SL

STARTBR COMMAND SYNTAX


To initiate and establish position for BROWSE. EXEC CICS STARTBR DATASET (filename) RIDFLD (k (key-area) ) [GENERIC] [GTEQ / EQUAL] [RRN / RBA ] END-EXEC. Exceptions: INVREQ Read operation not permitted NOTFND Record not found
89 ICIC010.2.SL

READNEXT COMMAND SYNTAX


Retrieving records sequentially in ascending sequence. EXEC CICS READNEXT INTO (rec-area) DATASET (fil (filename) ) RIDFLD (key-area) ( g ) LENGTH (length) RBA/RRN END-EXEC.

90

ICIC010.2.SL

READPREV COMMAND SYNTAX


Retrieving records sequentially backwards (in descending order): EXEC CICS READPREV DATASET (filename) INTO (rec area) (rec-area) RIDFLD (key-area) LENGTH (length) REQID (data-value) END-EXEC.

91

ICIC010.2.SL

RESETBR COMMAND SYNTAX


Altering the starting position of current Browse operation EXEC CICS RESETBR DATASET (filename) RIDFLD (key area) (key-area) [REQID (data-value)] [GTEQ / EQUAL] END-EXEC.

92

ICIC010.2.SL

ENDBR COMMAND SYNTAX


Ending the current Browse operation: EXEC CICS ENDBR DATASET (filename) [REQID (data value)] (data-value)] END-EXEC

93

ICIC010.2.SL

BASIC MAPPING SUPPORT

SESSION # 5
94 ICIC010.2.SL

BASIC MAPPING SUPPORT in CICS i


OBJECTIVES : To know about... Terminal Control The usage of maps in CICS Different types of maps Creating and using maps effectively g g p y Introduction to SDF

95

ICIC010.2.SL

IBM TERMINALS

The CICS Terminal Control Program(TCP) provides communication services between i i i b user-written applications and , g terminals, using information defined in the Terminal Control Table (TCT).

96

ICIC010.2.SL

IBM TERMINALS
Many types terminals are supported by CICS for data communication. A few examples.... p IBM 3270 Information Display System IBM 3600 Finance Communication System IBM 8775 Advanced terminals Normally, 3270 are the most commonly used terminals N ll h l d i l with Mainframes

97

ICIC010.2.SL

IBM TERMINALS

To communicate with any of these terminals, the data should be sent in their native mode. i.e., they must receive data stream in their native mode called Native Mode Data Stream (NMDS). NMDS is mixture of Buffer Control characters and Text data which is unique for individual terminal types based on their hardware protocol. protocol

98

ICIC010.2.SL

NMDS for an IBM 3270 terminal Output Data S O D Stream

C Info.

Addr

SF

Attr Byte Field 1

Text Data

Input Data Stream

C. Info Addr

Attr Byte Field1

Text Data

C Info Info.

Field 1

Field 2..... 2

S F - Start of field Character


99 ICIC010.2.SL

IBM TERMINALS
Problems with NMDS are that it is... Device Dependent (Hardware specific) Format Dependent Difficult to code To make the application programs independent k h li i i d d of terminal hardware we go for device and format independent Basic Mapping Support, p pp g pp , shortly BMS.

100

ICIC010.2.SL

BASIC MAPPING SUPPORT

BMS is an interface between the application program and the terminal BMS maps device independent data into device dependant data to provide a formatted screen d d td t t id f tt d BMS identifies the location and characteristics of data fields as well as the characteristics of the terminal with which the map will be used

FUNCTIONS OF BMS
To remove device dependent codes and constant information from an application and to place them in maps thereby simplifying programming job. Keeps Code largely independent of Any changes in network of terminals Any changes in the terminal types Other functions include... Processing text Page building Multiple screens of data Message Routing
102 ICIC010.2.SL

MAP & MAPSET

MAP Representation of one formatted screen R t ti f f tt d

MAPSET Collection of one or more map(s)

103

ICIC010.2.SL

TYPES OF MAPS
PHYSICAL MAP S CA A It is a program in the form of a load p g module. It is a table equivalent of screen layout layout. It resides in the program load library. It is loaded when executing program q requests send/receive BMS services.
104 ICIC010.2.SL

TYPES OF MAPS
SYMBOLIC MAP It is a group structure of COBOL variable declaration for map fields. It resides in the COPY books library. It is copied into the source program by p p g y the compiler during compilation of CICS application program.
105 ICIC010.2.SL

GENERATION OF MAPS
BMS Macro ASSEMBLE Link - Edit

Symbolic Map

Physical Map

COPY LIB

LOAD LIB

106

ICIC010.2.SL

USING MAPS IN A PROGRAM


Source Code CICS Translator Copy Library COBOL Compiler Symbolic map

Link Edit

Load Module & Physical map Load Library L d Lib

107

ICIC010.2.SL

Coding an Assembler macro

General syntax of an Assembler Macro...

Name N

Operation O ti

Operands O d

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 .... 70 71 72

108

ICIC010.2.SL

Coding an Assembler macro


An * in Col. 1, notifies that it is a comment line Name field for a mapset / map / field starts from Col. 1 Operation field starts at Col. 10 Operands field starts at Col. 16 Any line continued to the next line, should have a nonblank character in Col. 72 and should start after Col. 2 in the next line Operands should be separated by commas without spaces in-between them. END is coded in columns 9 through 11 to delimit the program.

109

ICIC010.2.SL

Coding a BMS macro


Macro definition for Fields, Maps and Mapsets :DFHMSD defines a Mapset p p one per mapset / BMS file DFHMDI defines a Map one per Map & one or more Maps per Mapset DFHMDF defines a Field p p p one per field & one or more Fields per Map
110 ICIC010.2.SL

DFHMSD
This Operation denotes that the definitions are for a Mapset and defines the mapset properties which consists of one or more maps. The Operands, apart form other things, specify whether the program will generate physical maps or symbolic maps or both h i l b li b th while assembling the code specify whether the maps will be used as I/P, O/P or both Continued...
111 ICIC010.2.SL

DFHMSD Syntax
MAPSETA DFHMSD TYPE = | DSECT / MAP / FINAL |, // DSECT-Symbolic Map MAP- Physical Map Final-Last map MODE MODE= | IN / OUT / INOUT ||, // Specifies Input / Output / Input Output Mode LANG = |ASM / COBOL / PL1 |, // Specifies the host language S ifi th h t l TERM = |ALL / 3270 |, // Terminal type ALL if supports all / 3270 IBM terminal STORAGE = AUTO // Each map will have separate storage area TIOAPFX = | YES / NO | , // If YES puts filler(12) for control info. CTRL=(PRINT,FREEKB,ALARM) // PRINT -Hard copy / FREEKB F H d FREEKB- Frees kbd ALARM kbd. ALARM-sound it d
112 ICIC010.2.SL

DFHMDI
This Operation denotes that the definitions are for a Map and defines the Map properties which consists of one or more fields fields. The Operands, apart form other things, specify the size and position of the map on the screen

Continued... Continued
113 ICIC010.2.SL

DFHMDI Syntax

Mapname DFHMDI

SIZE = (LINE,COLUMN), JUSTIFY = | LEFT / RIGHT |, CTRL = (ctrl1 ctrl2 ) (ctrl1,ctrl2,)

// This CTRL has precedence over the definition in Map Set

114

ICIC010.2.SL

DFHMDF
This Operation denotes that the definitions are for a Field within a Map. The O Th Operands, apart form other things, d tf th thi specify the length and relative position of the field on the map specify the attributes of the field specify the default values for the field specify whether the field is part of a group variable or not, etc.

115

ICIC010.2.SL

DFHMDF Syntax
Fieldname DFHMDF POS=(LINE,COLUMN), //Specifies position in the Map. LENGTH <1 LENGTH=<1 TO 255>, 255> // Specifies Size INITIAL=<value>, // Initialize text GROUPNAME=<GROUPNAME>, //Allows Subdivision of field //All S bdi i i f fi ld PICIN = <pic_clause>, PICOUT = <pic_clause>, // For formatting fields E.g. : $99.99 / 999.99DB JUSTIFY=|LEFT/BLANK/RIGHT/ZERO|, OCCURS <Number_of_Occurrences>, OCCURS= <Number of Occurrences> ATTRB=(attr1,attr2) //Specifies characteristics of field
116 ICIC010.2.SL

DFHMDF ATTRIBUTES
1. ASKIP / PROT / UNPROT //Specifies Auto-skip / Protected / Unprotected field 2. IC // Insert Cursor initializes cursor position 3. BRT / NORM / DRK // Bright / Normal / Dark Intensity of field 4. NUM // Numeric field type 5. FSET //Field Set (MDT ON) 6. DET // PEN Detectable

117

ICIC010.2.SL

MODIFIED DATA TAG (MDT)


MDT indicates whether the data field is modified or not. If the MDT is ON for a field, then that data is transmitted to the program. If MDT is OFF , no data is transmitted for that field.

118

ICIC010.2.SL

Sample BMS Coding... 1 10 1617 MAPSETA DFHMSD TYPE=MAP,MODE=INOUT, X CTRL=(FREEKB,FRSET), LANG=COBOL,TERM=3270 MAP1 DFHMDI SIZE=(24,80),TIOAPFX=Y DFHMDF POS=(1,10),LENGTH=6, INITIAL = T I L. DATE DFHMDF POS=(1,20),LENGTH=8 POS (1 20) LENGTH 8 DFHMDF POS=(3,10),LENGTH=10, INITIAL=ENTER NAME NAME DFHMDF POS=(3,25),LENGTH=20, POS=(3 25) LENGTH=20 ATTRB = IC MAP2 ...... MAP3 ......

72 X

X X

DFHMSD TYPE=FINAL //Indicates end of Mapset declaration END 119 ICIC010.2.SL

SENDING MESSAGE TO SCREEN


EXEC CICS SEND MAP (MAP1) MAPSET ( (MAPSETA) ) END-EXEC.

SYMBOLIC MAP

PHYSICAL MAP

OUTPUT DATA STREAM


120 ICIC010.2.SL

SENDING MESSAGE (MAPONLY)


EXEC CICS SEND MAP (MAP1) ( ) MAPSET (MAPSETA) MAPONLY END-EXEC. END EXEC

PHYSICAL MAP

OUTPUT DATA STREAM


121 ICIC010.2.SL

SENDING MESSAGE (DATAONLY)


EXEC CICS SEND MAP (MAP1) MAPSET (MAPSETA) DATAONLY END EXEC. END-EXEC

SYMBOLIC MAP

OUTPUT DATA STREAM


122 ICIC010.2.SL

COMMON ERRORS WITH MAPS


MAPFAIL More predominant error. Normally occurs when there is no data to be transmitted but the user uses any AID keys and receives the input. input INVREQ Receive C R i Command executed without a map on d t d ith t the screen. INVMPSZ Size of the map specified is larger than the screen. screen
123 ICIC010.2.SL

COPY BOOKS TO BE INCLUDED FOR USING BMS .........


WORKING-STORAGE SECTION. COPY DFHAID. //TO USE FUNCTION KEY RESPONSES COPY DFHBMSCA. //BMS COMMON WORK AREA COPY SYMBMAP1. //USER DEFINED MAP PROCEDURE DIVISION.

....
124 ICIC010.2.SL

SCREEN DEFINITION FACILITY (SDF)


SDF is an interactive screen definition software which works under CICS or TSO. This is an additional product supplied by IBM. Advantages of using SDF Interactive and direct definition of Screens on Terminals. SDF automatically generates BMS macro code. So S programmers are relieved from the li d f th troubles of coding Assembler macros. Provides interactive TEST facility. Provides some additional utilities like COPY, DELETE, RENAME functions & Directory Listing. Listing
125 ICIC010.2.SL

EXCEPTION HANDLING

SESSION # 6
126 ICIC010.2.SL

EXCEPTION HANDLING IN CICS


RESP HANDLE CO A CONDITION O IGNORE CONDITION HANDLE AID HANDLE ABEND

127

ICIC010.2.SL

RESP OPTION

The RESP option can be specified in any CICS command. Its function is similar to the return code in a batch program. If the RESP option is specified in a command , CICS places a response code at the completion of the command. The application program can check this code, then proceed to the next processing. This Thi approach has an advantage over the HANDLE hh d t th CONDITION approach, because this makes the program more structured.

128

ICIC010.2.SL

The following is the procedure to use the RESP option in a CICS g p p command : 1. 1 Define a fullword binary field (S9(8) COMP) in the Working Storage Section as the response field. 2. Place the RESP option with the response field in a command. 2 Pl h i ih h fi ld i d p 3. After command execution, check the response code in the response field with DFHRESP(xxxx), where xxxx is : NORMAL for normal completion. A exceptional comdition. Any ti l diti

129

ICIC010.2.SL

Example : WORKING-STORAGE SECTION WORKING STORAGE SECTION. 77 WS-RETCODE PIC S9(8) COMP. PROCEDURE DIVISION. . . EXEC CICS SEND FROM (_____) LENGTH(___) LENGTH( ) ERASE RESP(WS-RETCODE) END-EXEC. . IF WS-RETCODE = DFHRESP(NORMAL) GO TO NORMAL-PARA. IF WS-RETCODE = DFHRESP(LENGERR) GO TO LENGERR-PARA LENGERR-PARA. GO TO GENERAL-ERR-PARA. NORMAL-PARA. LENGERR PARA. LENGERR-PARA

130

ICIC010.2.SL

During the execution of this program, the following will occur : At the completion of the SEND command, the WS-RETCODE field will have the response code of the command execution result. result If the SEND command completes normally, control will be passed to NORMAL-PARA. If a LENGERR is e cou e ed , control will be passed to NG s encountered co o w p ssed o LENGERR-PARA. If any other exceptional condition is encountered, control will be encountered passed to GENERAL-ERR-PARA.

131

ICIC010.2.SL

HANDLE CONDITION COMMAND


EXEC CICS HANDLE CONDITION Exception Condition1 (ROUTINE 1) Exception Condition2 ( p (ROUTINE 2) ) Exception Condition3 (ROUTINE 3) END-EXEC. END EXEC

132

ICIC010.2.SL

EXAMPLE
EXEC CICS HANDLE CONDITION ERROR(GEN-ERR-RTN) LENGERR(LENGERR-RTN) END-EXEC. EXEC CICS RECEIVE INTO(WK-TIOA) INTO(WK TIOA) LENGTH(WK-LEN) END-EXEC. ...... LENGERR-RTN. ........................................ GEN-ERR-RTN. .............................................
133 ICIC010.2.SL

IGNORE CONDITION COMMAND

The IGNORE CONDITION command causes no action to be taken if the specified condition occurs in the p g p program. The control will be passed on to the instruction following the command which encountered the exceptional condition. The request by the IGNORE CONDITION command is valid until the subsequent HANDLE CONDITION for the same condition. diti

134

ICIC010.2.SL

Syntax : EXEC CICS IGNORE CONDITION condition (condition) END-EXEC. The condition indicates an exceptional condition. At the most, only 12 conditions are allowed in the same command.

135

ICIC010.2.SL

EXAMPLE
EXEC CICS IGNORE CONDITION LENGERR END-EXEC. END EXEC EXEC CICS RECEIVE INTO(_______) LENGTH(____) END-EXEC.

At the execution of the RECEIVE command, if LENGERR command exception occurs, the condition will be ignored, and the control will be passed to the statement after the RECEIVE command.
136 ICIC010.2.SL

HANDLE AID COMMAND


Used to execute a routine depending on a key pressed Always used with RECEIVE command Syntax : EXEC CICS HANDLE AID attention id1 (ROUTINE1) attention id2 (ROUTINE2) tt ti attention id3 (ROUTINE3) END-EXEC.

137

ICIC010.2.SL

EXAMPLE

EXEC CICS HANDLE AID PF3(END-ROUTINE) 3( N OU N ) PA1(CANCEL-ROUTINE) ENTER(NORMAL-ROUTINE) ANYKEY(WRONG-KEY-ROUTINE) ANYKEY(WRONG KEY ROUTINE) END-EXEC.

138

ICIC010.2.SL

HANDLE ABEND COMMAND

The Th HANDLE ABEND command i used t i t d is d to intercept an t abnormal termination (ABEND) in a program, and to activate, cancel or reactivate an exit for the ABEND processing. The HANDLE CONDITION command intercepts the abnormal conditions of the CICS command execution whereas HANDLE ABEND intercepts abnormal termination.

139

ICIC010.2.SL

Syntax : EXEC CICS HANDLE ABEND [PROGRAM(name) | LABEL(label) | CANCEL | RESET ] END-EXEC. PROGRAM or LABEL is used to pass control to a program or a sed paragraph , respectively, for ABEND processing. CANCEL is used to cancel the previously established HANDLE ABEND request. RESET is used to reactivate the previously cancelled HANDLE ABEND request.
140 ICIC010.2.SL

EXAMPLE
WORKING-STORAGE SECTION WORKING STORAGE SECTION. 77 MSG-LEN PIC S9(4) COMP. 01 MSG-DATA. 05 MSG-DATA1 PIC X(15). 05 MSG DATA2 PIC X(50). MSG-DATA2 X(50) : PROCEDURE DIVISION. : EXEC CICS HANDLE ABEND LABEL(ABEND-ROUTINE) END-EXEC. : ABEND-ROUTINE. ABEND ROUTINE MOVE ABEND OCCURED. TO MSG-DATA1. MOVE TASK CANCELLED WITH ABCODE 9999. TO MSG-DATA2. MOVE 65 TO MSG-LEN. EXEC CICS SEND FROM (MSG-DATA) LENGTH(MSG-LEN) NOHANDLE END-EXEC. END EXEC

141

ICIC010.2.SL

EXEC CICS HANDLE ABEND CANCEL END-EXEC. END EXEC EXEC CICS ABEND ABCODE(9999) END-EXEC.

During the execution of the program, the following activities will occur : If an ABEND occurs, it will be intercepted by the HANDLE ABEND command, and control will be passed to ABENDROUTINE. ROUTINE At the completion of the HANDLE ABEND/CANCEL command, the previous HANDLE ABEND request will be cancelled. At th completion of the ABEND command, th task will be the l ti f th d the t k ill b terminated with user code 9999.

142

ICIC010.2.SL

TRANSIENT DATA QUEUES

SESSION # 7
143 ICIC010.2.SL

TRANSIENT DATA QUEUE

OBJECTIVES To get an introduction on Transient Data Queue To learn to use TD Queues

144

ICIC010.2.SL

TRANSIENT DATA CONTROL


Sequential data sets called Transient Data Files are used by CICS for inter-region and intra-region data transfer This is facilitated by Transient Data Control Program (TDP), which allows CICS transaction to deal with these files Transient Data Files, also called as Transient Data Queue (TDQ) or Transient Data Destination, can be used as either I/P or O/P files, but not both Continued ...
145 ICIC010.2.SL

TRANSIENT DATA CONTROL


The term Queue is used because records are accessed in sequential mode, as in a queue i l d i The Term destination indicates, that most often these , sequential data are directed to other transaction or otherwise called Destination Each TDQ is identified by 1-4 character identifier called Destination -id, which are to be registered in Destination C D i i Control Table (DCT) l T bl

146

ICIC010.2.SL

TRANSIENT DATA CONTROL


Types of TD Queues... INTRA PARTITION TDQ A group of sequential records which are g p q produced & processed by same and/or different Transactions within the same CICS region. All Intra partition TD Queues are stored in one VSAM physical file in the CICS region which is prepared b system programmer and maintained d by d i i d by CICS Continued ...
147 ICIC010.2.SL

TRANSIENT DATA CONTROL


INTRA PARTITION TDQ (cont.) From application programmers point of view one record i used at a time sequentially d is d i i ll TDQ is a Destructive Read-out queue ; i.e Once Q q read record, is logically removed from the Queue Some typical applications of Intra partition TD Queues Interface among CICS Transactions Pgm. 1------TDQ------pgm. 2------Report Automatic T k Initiation (ATI) A i Task I i i i Message Routing g g Message Broadcasting
148 ICIC010.2.SL

TRANSIENT DATA CONTROL


Types of TD Queues... (cont.) EXTRA PARTITION TDQ A group of sequential records which interface g p q between transactions of different CICS regions and other systems outside CICS region In Input Extra Partition TDQ, records are created by programs outside the CICS region, (like...batch jobs, TSO, (lik b h j b TSO PC etc.) and are ) d processed by CICS transaction Continued ...
149 ICIC010.2.SL

TRANSIENT DATA CONTROL


EXTRA PARTITION TDQ (cont.) In Output Extra Partition TDQ, records are created by CICS transaction and are processed by other systems or another CICS region Each TDQ is a separate physical file and the destination ma be a disk/tape/printer/plotter may Therefore for its use, each file must be opened by the CICS region, when used by a Transaction Continued ...
150 ICIC010.2.SL

TRANSIENT DATA CONTROL


EXTRA PARTITION TDQ (cont.) DCP with DCT determines the Open/Close status of the file Files can also be Opened/Closed dynamically through Master Terminal Transaction (CEMT) during acti e d ring an active CICS session

Continued ...
151 ICIC010.2.SL

TRANSIENT DATA CONTROL


EXTRA PARTITION TDQ (cont.) Some typical applications of Extra Partition TD Qs S i l li i f ii Q Interface to Batch (or TSO or PC ) j ( jobs CICS App. pgm-----TDQ-----File-----Batch job. Interface from Batch (or TSO or PC ) jobs Batch job-----TDQ-----File-----CICS App. pgm.

152

ICIC010.2.SL

TRANSIENT DATA CONTROL


TDQ Commands WRITEQ TD - Writes record in Q for both types i di f b h READQ TD Q - Read record from Q for both types yp

DELETEQ TD - To delete an Intra Partition TDQ Not Valid for Extra Partition TDQ TD in the commands stands for Transient Data ; if omitted the same command defaults to TSQ i d h dd f l

153

ICIC010.2.SL

TRANSIENT DATA CONTROL


WRITEQ TD Syntax EXEC CICS WRITEQ TD QUEUE ( <name> ) FROM ( data-area ) [ LENGTH ( data-value ) ] END-EXEC. EXCEPTIONS QIDERR LENGERR NOSPACE

- DCT entry not found for the Q - l length specified is greater than h ifi d i h maximum length given in DCT - no space available in TDQ p Q
154 ICIC010.2.SL

TRANSIENT DATA CONTROL


READQ TD Syntax EXEC CICS READQ TD QUEUE ( <name> ) INTO ( data-area ) [ LENGTH ( data-value ) ] END-EXEC. EXCEPTIONS QIDERR LENGERR Q QZERO

- DCT entry not found for the Q - l length specified is not the same h ifi d i h as that specified in DCT - no more items to read in the Q Q
155 ICIC010.2.SL

TRANSIENT DATA CONTROL


DELETEQ TD Syntax EXEC CICS DELETEQ TD Q QUEUE ( <name> ) END-EXEC.

EXCEPTIONS QIDERR - DCT entry not found f the Q f d for h

156

ICIC010.2.SL

DESTINATION CONTROL TABLE


DCT`s primary function is to register Control Information of all TD Queues f i f ll Destination Control Program uses this DCT for g identifying all TD Queues and perform input/output operations against them DCT entries are defined using Assembler macros into DFHDCT for both types of TD Queues (parameters & options for both types is quite different) i f b h i i diff )

157

ICIC010.2.SL

AUTOMATIC TASK INITIATION (ATI)


ATI is a facility through which another transaction can be initiated b i i i d automatically i ll When the number of records in an Intra Partition TDQ Q reaches a particular level, the system triggers the transaction to start The Trans-id is defined in the DCT entry of the Intra Partition TDQ with non-zero trigger level to initiate a particular transaction i l i Continued ...
158 ICIC010.2.SL

AUTOMATIC TASK INITIATION (ATI)


Applications... Message Switching Messages can be accumulated in a TDQ (Intra Partition) and at certain level, say 1000, another transaction may be started to route the messages to a different destination Report Print Similarly records can be accumulated, and at certain trigger level another transaction can be started to print the records

159

ICIC010.2.SL

TEMPORARY STORAGE QUEUES

SESSION # 8
160 ICIC010.2.SL

TEMPORARY STORAGE CONTROL


Temporary Storage Control Program (TSP) provides application program with ability to store & retrieve data in Temporary Storage Queues (TSQ) . Characteristics of TSQs : TSQ is Queue of records stored , which is created dynamically without any entries in control tables. d namicall ith t ti i t l t bl TSQ is identified by Queue-ID (1 to 8 bytes) & record within Queue is identified by relative position called Item Number. Continued ...
161 ICIC010.2.SL

CHARACTERISTICS OF TSQS (contd...)


Application programs use TSQs as scratch pad memory facility for any purposes. c y o y pu poses. Records once stored remain accessible until entire TSQ is deleted. deleted Records can be Read sequentially or directly also they can be Reread & Updated. TSQ may be written in main storage or auxillary storage in DASD. Irrespective of place stored can be accessed by any Transaction in that CICS region. Continued ...
162 ICIC010.2.SL

CHARACTERISTICS OF TSQS (contd...)


TSQ is in main storage hence more efficient than TDQ. Only problem is if crash occurs then contents are lost, no lost chance of retrieval as in case of TDQs. Typical Applications : Data passing between Transactions. Report Printing , typically one prg writes in TSQ and other prints report using this TSQ TSQ. Continued...
163 ICIC010.2.SL

TSQ AVAILABLE COMMANDS Q


WRITEQ TS : To Write & Rewrite record in TSQ. READQ TS : To Read record from TSQ. DELETEQ TS : To delete TSQ.

TD in command is for Transient Data if omitted Default is TS Temporary Storage Queue.

164

ICIC010.2.SL

EXAMPLE
WORKING STORAGE WORKING-STORAGE SECTION. 01 TSQ-QID. 05 TSQ-QID-DIV 05 TSQ-QID-TERM 05 TSQ QID APPL TSQ-QID-APPL 05 TSQ-QID-NUM 01 TSQ-DATA. 05 TSQ-FIELD1 05 TSQ FIELD2 TSQ-FIELD2 77 TSQ-LEN 77 TSQ-ITEM PROCEDURE DIVISION. OC U V S ON. .................... CONSTRUCT QID. MOVE EIBTRMID TO TSQ-QID-TERM. MOVE I TO TSQ-QID-APPL. QQ MOVE 1 TO TSQ-QID-NUM. ...................(Edit TSQ data).................. MOVE 200 TO TSQ-LEN. Contd............... PIC X VALUE A. PIC X(4). PIC X. PIC 99. PIC X(50). PIC X(150). PIC S9(4) COMP. PIC S9(4) COMP.

165

ICIC010.2.SL

EXAMPLE ........(Contd.)
WRITE A QUEUE. EXEC CICS WRITEQ QUEUE(TSQ-QID) FROM(TSQ-DATA) LENGTH(TSQ-LEN) ITEM(TSQ-ITEM) ITEM(TSQ ITEM) MAIN END-EXEC.

N.B. : If a TSQ with this QID does nort exist, a TSQ will be created with QID=AttttI01, where tttt is the terminal id.

166

ICIC010.2.SL

INTERVAL & TASK CONTROL

SESSION # 9
167 ICIC010.2.SL

INTERVAL CONTROL & TASK CONTROL

OBJECTIVES To know more on Interval Control and Time related functions To know more on Task management

168

ICIC010.2.SL

INTERVAL CONTROL

CICS Interval Control Program ( ICP ) provides application program a variety of time related functions, such as current date & time, ATI of time ordered tasks etc. There are specific commands available for CICS-ICP to handle with the time and date functions.

169

ICIC010.2.SL

INTERVAL CONTROL
A few ICP Commands... ASKTIME to request Current Date & Time i FORMATTIME- to select Format of Date & Time DELAY to Delay processing of a task yp g WAIT EVENT - to wait for an event to occur START to start a Transaction POST to request notification when specified time has expired RETRIEVE - to retrieve data stored by START command f the transaction d for h i CANCEL to cancel effect of previous interval control command
170 ICIC010.2.SL

INTERVAL CONTROL
VARIOUS DATE / TIME FORMATS DDMMYY / MMYYDD / YYMMDD / YYDDD DATE / DATESEP / DATEFORM YEAR TIME / TIMESEP DAYOFWEEK / DAYOFMONTH A O A O O DAYCOUNT MONTHOFYEAR NOTE : In the latest release of CICS, year is in YYYY format
171 ICIC010.2.SL

INTERVAL CONTROL
Scheduled Transaction Initiation (STI) ( ) Scheduled Transaction Initiation (STI) is an important application of the START command, by which CICS transactions can be initiated automatically at scheduled time or intervals. intervals EXEC CICS START TRANID(ABCD) TERMID(TTTT) TIME( 090000 ) ( END-EXEC. // ABCD will be initiated at 9.00 AM

172

ICIC010.2.SL

TASK CONTROL
CICS Task Control Program ( KCP ) provides functions to synchronize task activities and to gain exclusive control over resources In other words TASK CONTROL refers to the CICS g functions that manage the execution of tasks It is mainly concerned with the task dispatcher that dispatches the tasks according to priority CICS automatically provides exclusive control over resources to a task in most of the cases. However for certain sharable resources ENQ & DEQ should be used for maintaining integrity, like for TSQ updating, Printer Handling etc.,

173

ICIC010.2.SL

TASK CONTROL
A few KCP Commands... ENQ to gain exclusive control over resource to l t release resource on exclusive l i control

DEQ -

SUSPEND - to suspend a task

174

ICIC010.2.SL

INTERCOMMUNICATION

SESSION # 10
175 ICIC010.2.SL

INTER COMMUNICATION MULTI REGION OPERATION & INTER SYSTEM COMMUNICATION


OBJECTIVES To get an introduction on MRO and ISC

176

ICIC010.2.SL

INTER COMMUNICATION
CICS Inter Communication is a concept of communicating between various Sub-Systems and CICS in a MultiSystem environment The term Various Sub-Systems include Various Sub Systems other CICS regions in the same processor CICS region in other processors and even non-CICS regions CICS i Inter Communication can be achieved in two ways... Multi Region Operation ( MRO ) Inter System Communication ( ISC )

177

ICIC010.2.SL

MULTI REGION OPERATION (MRO)

In any system, there could be more than one CICS region, each running independently under same OS say MVS/XA, on the same processor Communication between CICS regions in the C i ti b t i i th same environment under the same processor is termed as MRO

178

ICIC010.2.SL

Accounting database d t b

MRO Example Multiple D M lti l Departmental System t t lS t


Processor 1

Operating System Accounting System CICS 1 S t Sales System CICS 3 Inventory System CICS 2

Sales database
179

Inventory database
ICIC010.2.SL

MULTI REGION OPERATION (MRO)


ADVANTAGES Functional Independence Since operation of the CICS systems are i i f h independent of each other, the owner can have total control over his system y Reliability Even if one system fails, other system(s) can support the functions of the failed system Performance Enhancement System performance can be tuned independently for f each system b d on the relative h based h l i requirements and priority thus improving the y overall efficiency Continued ...
180 ICIC010.2.SL

MULTI REGION OPERATION (MRO)


ADVANTAGES (cont.) Security Systems b i independent, greater security is being i d d i i achieved Non Redundant Same data is shared by all the systems so there are no multiple copies Project Phasing Since there are different systems present, the projects can be easily divided and developed individually i di id ll Continued ...
181 ICIC010.2.SL

MULTI REGION OPERATION (MRO)

Disadvantages

In MRO all operations must be centralized (more specifically in Uni.-Processor) and h ifi ll i U i P ) d hence MRO is not suitable for distributed applications (Spanning several offices/ processors)

182

ICIC010.2.SL

Inter System Communication (ISC)


CICS in one processor can communicate with CICS in other processor or other non-CICS systems regardless of where they are physically located ICS requires sophisticated communication network based System Network Architecture b d on S stem Net ork Architect re (SNA) which hi h define protocol standards and data formats of communication by different hardware & software in multi-system environment ( SNA is protocol for IBM Mainframes to talk to other machines )
183 ICIC010.2.SL

Inter System Communication (ISC)


ADVANTAGES We can develop complex distributed systems relatively easily Transparency of Distance Physically distant resources are shared through ISC Hardware/Software Independence To local CICS, it is transparent on what hardware & software the remote system is existing on

184

ICIC010.2.SL

Accounting database

Typical example ISC Distributed Corporate System p y


Operating System Accounting System CICS Processor 1

CITY 1

Operating System Sales System CICS Processor 2

Operating System

SNA

Inventory System CICS Processor 3

CITY 2
Sales database
185

CITY 3
Inventory database
ICIC010.2.SL

SESSION # 11
186 ICIC010.2.SL

DEBUGGING CICS EXECUTION DIAGNOSTIC FACILITY ( CEDF )

OBJECTIVES To know more about diagnostic facilities in CICS To learn to use CEDF

187

ICIC010.2.SL

DEBUGGING UTILITIES
Other CICS supplied debugging utilities include pp gg g Transaction Dump Command Level Interpreter ( CECI ) Temporary S Storage Browse (C CEBR )

Master Terminal Transaction ( CEMT ) Dynamic File Open / Close ( DFOC )

188

ICIC010.2.SL

EXECUTION DIAGNOSTIC FACILITY (EDF)


EDF is a CICS supplied diagnostic facility to debug CICS applications in IBM Mainframe environment Functions of EDF... EDF manipulates a transaction by executing and suspending a task and displays the status at different points p At any point of interruption, information about the values of EIB, program`s WS area mapping and application screens (current, previous and (current next) and many more can be obtained At any point EDF can be cancelled and normal functioning can be resumed f i i b d EDF is activated by entering CEDF Trans-id along with gg the transaction-id which has to debugged
189 ICIC010.2.SL

EFFICIENT CICS PROGRAMMING

SESSION # 12
190 ICIC010.2.SL

EFFICIENT CICS PROGRAMMING

OBJECTIVES

To get an introduction to develope efficient CICS applications

191

ICIC010.2.SL

EFFICIENT CICS PROGRAMMING

Considerations to be made while designing an ON - LINE application Processing Requirements Screen requirements On-Line printing requirements Continued ...
192 ICIC010.2.SL

EFFICIENT CICS PROGRAMMING

Considerations to be made while designing an ON - LINE application (cont ) (cont.) User Friendliness System performance and Resource usage System security, reliability and maintainability

193

ICIC010.2.SL

EFFICIENT CICS PROGRAMMING


Considerations to be made to improve System Performance Instead of CSA, CWA, TWA, TCTUA use EIB informations TSQ with MAIN option COMMAREA option with RETURN, XCTL and LINK commands Define variables in WS section rather using GETMAIN command Use VSAM files instead of BDAM, ISAM and QSAM files Continued ...
194 ICIC010.2.SL

EFFICIENT CICS PROGRAMMING


Considerations to be made to improve System Performance ( cont. ) Instead of MULTIMAP panel approach use MULTIPAGE maps and FREE Format pages Instead of using Extra Partition TDQ use VSAM / ESDS files Intra Partition TDQ use TSQ with MAIN option Use Pseudo Conversation technique Use minimum required WS section Free all acquired resources, with EXCLUSIVE control as soon as possible Modularize programs based on the functional unit Continued ...
195 ICIC010.2.SL

EFFICIENT CICS PROGRAMMING


Considerations to be made to improve System Performance ( cont. )

Reduce traffic on the line where ever possible While browsing files, avoid Multi Files Browsing Learn to use GENERIC key option. - END 196 ICIC010.2.SL

You might also like