Sunteți pe pagina 1din 188

CICS

. Customer Information Control System 28th July 2009

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

Customer Information Control System

SESSION # 1
3

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.

Data from card,tape,disk. Sequential, Scheduled

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.

Start of job Process mode

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. More Usage. Airline Reservation .

End of job Each job. Turnaround Usually much longer.

Resources Less Usage. Appln. Monthly Sales Report.


5

Features of CICS
Easy to develop on-line applications. Common interface to database and Data sets. Better response time. Easy to customize. Coding similar to high level Languages. Continued ...
6

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.

VSAM Disk Files

CICS

Application. Program

VTAM / TCAM Terminal Users


8

OPERATING SYSTEM Database Access Method (DL/1,DB2) Data Access Method (VSAM, BDAM) Telecommunication Access Method (VTAM, TCAM)

Other Systems

Data Storage

Data-handling Functions

CICS / MVS System Services Monitoring Functions Application Program Services

Terminals Data-Comm Functions

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

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

10

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

11

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 tasks concurrently. For each task, the program must work as if it were executing instructions exclusively for each task.

12

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 it can reenter to itself and continue processing after an interruption by the operating system.

13

CICS COMPONENTS
Control Programs ( Management Modules) Control Tables Control Blocks

CICS core nucleus consists of Control Programs & their corresponding Control Tables.

14

Control Program
File Control Program Interval Control Program Journal Control Program Program Control Program Task Control Program Storage Control Program Terminal Control Program Transient Data Program
15

Control Tables
File Control Table Interval Control Table Journal Control Table Processing Program Table Program Control Table Storage Control Table Terminal Control Table Destination Control Table

Temporary Storage Program Temporary Storage Table

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 the most commonly used EIB information are EIBAID : Value of last Attention identifier key pressed (1 BYTE ). Continued...
16

EIB INFORMATION (contd...)


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

EIB INFORMATION (contd...)


EIBTASKN EIBTIME EIBTRMID EIBTRNID : Task Number of the Current Task ( S9 (7) COMP-3 ). : Time when the Current Task was started ( S9 (7) COMP-3 ). : Terminal-ID from where task Initiated ( 1-4 characters ). : Transaction-id of Current Task (1-4 characters ).

18

CICS STARTUP:
Starting up of an CICS system involves executing a job (JCL) like any other batch-job. 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. Then CICS job produces various logs, statistics, dumps & reports
19

GENERAL SYNTAX OF CICS STATEMENT


EXEC CICS <FUNCTION> Option 1(arguments ) Option2(arguments ) ... END EXEC. Basic Steps in CICS Application Program Development : CICS Commands are embedded in the host language e.g. COBOL, PL/I . Translate, Compile, Link-edit an application program into Program library(Load-lib). Continued...
20

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. Define program into PPT . Register Terminal into TCT. Register the user in SNT(Sign-On 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.

21

STEPS IN APPLICATION DEVELOPMENT


COBOL Program with CICS Statements
CICS Preprocessor

COBOL Source Code

Object Module

COBOL Compiler

Link Edit 22

Load Module

INITIATION OF CICS TRANSACTION


There are five ways of initiating CICS transactions : 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 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.

23

PCT Transaction AAAA BBBB CCCC PPT Program AAAPGM1 BBBPGM1 CCCPGM2 Library

USER ENTERS TRANS-ID (AAAA) Program AAAPGM1 BBBPGM1 CCCPGM2 CICS locates trans-id AAAA in program control table CICS Address Space Location On Disk In Storage On Disk Load Module 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

ORDPROG AAAPGM1 ORGPROG BBBPGM1 DDMPROG CCCPGM2

AAAPGM1

24

CICS SERVICES
Terminal Control Program Control File Control Basic Mapping Support ( B M S ) Transient Data & Temporary Storage Control Interval & Task Control Storage Control
25

TERMINAL CONTROL SERVICE

SESSION # 2
26

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 Terminal Control Operations.

27

TERMINAL CONTROL COMMANDS IN CICS


SEND RECEIVE To print text onto the terminal screen To receive data into a variable from the terminal

CONVERSE To send data to terminal and receive data from terminal ISSUE PRINT To print all data onto the screen on printer ISSUE COPY To copy one terminal screen to other HANDLE AID To handle keys pressed on terminal
28

SEND COMMAND SYNTAX


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

Eg:

EXEC CICS SEND FROM (Enter the Number ) LENGTH (20) END-EXEC. EXEC CICS SEND FROM (SCR-MESSAGE) LENGTH (WS-MESSAGE-LEN) END-EXEC. (WS-MESSAGE-LEN is a WORKING-STORAGE variable )
29

RECEIVE COMMAND SYNTAX


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

CONVERSE COMMAND
The CONVERSE Command performs the combined functions of the SEND command with Invite option and RECIEVE command. The CONVERSE command sends data to other partner transaction during the conversation, automatically switches the 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...
31

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) ERASE END-EXEC. (WS-VAR is a WORKING-STORAGE variable)
32

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.

33

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 (Terminal Name) END-EXEC.

34

HANDLE AID COMMAND SYNTAX


EXEC CICS HANDLE AID Attention Key1 (Routine1) Attention Key2 (Routine2) Attention Key3 (Routine3) END-EXEC. Eg: EXEC CICS HANDLE AID PF1 (PF1-Routine) PF2 (PF2-Routine) END-EXEC. ( PFx-Routines are to be coded by Application Programmer )
35

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 command. DFHAID is the library member having all the key valuesContinued
36

TIPS ON HANDLE AID COMMAND(contd...)


In WORKING-STORAGE SECTION. * DFHAID is Copy Book to be included. 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

37

PROGRAM CONTROL

SESSION # 3
38

PROGRAM CONTROL IN CICS


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

39

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 programs To monitor the flow of control between application programs

40

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

PASSING DATA BETWEEN PROGRAMS


TRANSID: TRN1 TRANSID: TRN2 COMMAREA

Program 1
Working-storage Section

Program 2
Linkage Section. DFHCOMMAREA

COM Procedure Division. .... RETURN TRANSID(TRN2) COMMAREA(COM)


42

EIBCALEN contains the Size of COM

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 immediate higher logical level

43

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 . This command is useful for loading a table or application 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. Continued...
44

LOAD command Syntax


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

45

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

46

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

47

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

48

RELEASE command Syntax

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

49

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

50

LINK command syntax


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

51

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 be passed to the called program as an input - S9(4) COMP. Length of data area to be passed as input

52

LINK flow of control

CICS SYSTEM

First Program: LINK

Second Program: RETURN

53

XCTL command
The XCTL Command is used to pass control from a 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.

54

XCTL command Syntax

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

55

XCTL command Syntax


Important Parameters : PROGRAM COMMAREA LENGTH INPUTMSG INPUTMSGLEN - Program to be XCTL. - Data area to be passed to the called program - S9(4) COMP. Length of data area to be passed - Data area to be passed to the called program as an input - S9(4) COMP. Length of data area to be passed as input
56

XCTL flow of control

CICS SYSTEM

First Program: XCTL

Second Program: RETURN

57

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

Program 1. XCTL CICS Program 2.

58

RETURN command syntax

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

59

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. Length of data area to be passed - Parameter to start the next transaction immediately after the execution of the RETURN command, without user intervention
60

Modes of Application Programming

CONVERSATIONAL NON CONVERSATIONAL PSEUDO CONVERSATIONAL

61

Modes of Application Programming


Conversational Y Direct interaction of user with the system Y System waits for the user input Non Conversational Y Only 1 request from user to system

Continued...
62

Modes of Application Programming


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

63

Pseudo Conversation Techniques


Multiple Transid and multiple Programs - here the first part of the logic is coded in one program and when that is executed it returns with the Transid of the next program to be executed. Here lot of CICS entries are needed. Multiple Transid and One Program - here the entire logic is coded in one program and when that is executed it returns with a different Transid so when the control comes to the program in the program the Transid will be checked and that part of the code will be executed. One Transid and One Program - here the entire logic is coded in one program and it wholly depends on the commarea, once the first part of the program is executed it returns with Transid, when the control comes to the program in the program checks the user action and the commarea then the subsequent actions will be taken.

64

FILE CONTROL

SESSION # 4
65

INTRODUCTION
The CICS File Control Program (FCP) provides application programs with services to Read, Update, Add, and 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...
66

FILE CONTROL SERVICE(contd)


Data independence is a concept of program being independent of structure of data access 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 asINPUT-OUTPUT SECTION SELECT statement FD entry OPEN/CLOSE JCL Continued...
67

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

FILE CONTROL SERVICE(contd)


Available Commands READ WRITE : Read a Record :Write a Record

REWRITE : Update a Record DELETE : Delete a Record UNLOCK : To release Exclusive control acquired for update
69

READ COMMAND SYNTAX


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

EXAMPLE
Suppose that file FILEAAA has records in the following order : BO001 BC001 DC001 DC002 NY000 NY001 NY002 PH001 PH002
71

WORKING-STORAGE SECTION. 77 WK-LEN 01 FILE-IOAREA. 05 REC-A. 10 REC-A-KEY 15 REC-A-KEY-CITY 15 REC-A-KEY-SEQ 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).

72

READ COMMAND SYNTAX


EXCEPTIONS: LENGERR Record length mismatch with file INVREQ Read operation not permitted as It is not mentioned in the FCT Record is locked NOAUTH Resource acquisition failed NOTFND Record not found ENDFILE End of File

73

WRITE COMMAND SYNTAX


EXEC CICS WRITE FROM (rec-area) LENGTH (length) DATASET (filename) RIDFLD (key-area) MASSINSERT // Allows group of records END-EXEC. // simultaneously Eg: EXEC CICS WRITE FROM (FILE-IOAREA) LENGTH (WK-LEN) DATASET (FILEAAA) RIDFLD(REC-A-KEY) END-EXEC.
74

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.

75

REWRITE COMMAND SYNTAX


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

76

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

UNLOCK COMMAND SYNTAX


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

78

BROWSE COMMANDS
CICS provides a special set of browse commands STARTBR READNEXT READPREV RESETBR ENDBR Continued...
79

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. If more records are required, then go to step 3. 6. If it is required to establish another position, then reestablish the new position and go to step 3. RESETBR 7. Terminate the BROWSE operation. ENDBR 8. End.
80

STARTBR COMMAND SYNTAX


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

READNEXT COMMAND SYNTAX


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

82

READPREV COMMAND SYNTAX


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

83

RESETBR COMMAND SYNTAX


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

84

ENDBR COMMAND SYNTAX


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

85

BASIC MAPPING SUPPORT

SESSION # 5
86

BASIC MAPPING SUPPORT in CICS


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

87

IBM TERMINALS

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

88

IBM TERMINALS
Many types terminals are supported by CICS for data communication. A few examples.... Y Y Y IBM 3270 Information Display System IBM 3600 Finance Communication System IBM 8775 Advanced terminals

Normally, 3270 are the most commonly used terminals with Mainframes

89

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.

90

NMDS for an IBM 3270 terminal Output Data Stream

C Info.

Addr

SF

Attr Byte Field 1

Text Data

Input Data Stream

C. Info Addr

Attr Byte Field1

Text Data

C Info.

Field 1

Field 2.....

S F - Start of field Character


91

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

92

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

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 Y Any changes in network of terminals Y Any changes in the terminal types Other functions include... Y Processing text Y Page building Y Multiple screens of data Y Message Routing
94

MAP & MAPSET


MAP Representation of one formatted screen MAPSET Collection of one or more map(s)

95

TYPES OF MAPS
PHYSICAL MAP Y It is a program in the form of a load module. It is a table equivalent of screen layout. It resides in the program load library.

Y Y

Y It is loaded when executing program requests send/receive BMS services.


96

TYPES OF MAPS
SYMBOLIC MAP Y 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 the compiler during compilation of CICS application program.

Y Y

97

GENERATION OF MAPS
BMS Macro ASSEMBLE Link - Edit

Symbolic Map

Physical Map

COPY LIB

LOAD LIB

98

USING MAPS IN A PROGRAM


Source Code CICS Translator Copy Library Symbolic map

COBOL Compiler

Link Edit

Load Module & Physical map Load Library

99

Coding an Assembler macro

General syntax of an Assembler Macro...

Name

Operation

Operands

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

100

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.

101

Coding a BMS macro


Macro definition for Fields, Maps and Mapsets : DFHMSD Y defines a Mapset Y one per mapset / BMS file DFHMDI Y defines a Map Y one per Map & one or more Maps per Mapset DFHMDF Y defines a Field Y one per field & one or more Fields per Map
102

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, Y specify whether the program will generate physical maps or symbolic maps or both while assembling the code Y specify whether the maps will be used as I/P, O/P or both Continued...
103

DFHMSD Syntax
MAPSETA DFHMSD TYPE = | DSECT / MAP / FINAL |, // DSECT-Symbolic Map MAP- Physical Map Final-Last map MODE= | IN / OUT / INOUT |, // Specifies Input / Output / Input Output Mode LANG = |ASM / COBOL / PL1 |, // Specifies the host language 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- Frees kbd. ALARM-sound it
104

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

105

DFHMDI Syntax
Mapname DFHMDI SIZE = (LINE,COLUMN), JUSTIFY = | LEFT / RIGHT |, CTRL = (ctrl1,ctrl2,) // This CTRL has precedence over the definition in Map Set

106

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

107

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

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

109

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.

110

Sample BMS Coding... 1 10 1617 MAPSETA DFHMSD TYPE=MAP,MODE=INOUT, 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 DFHMDF POS=(3,10),LENGTH=10, INITIAL=ENTER NAME NAME DFHMDF POS=(3,25),LENGTH=20, ATTRB = IC MAP2 ...... MAP3 ......

72 X X X X X

DFHMSD TYPE=FINAL //Indicates end of Mapset declaration END 111

SENDING MESSAGE TO SCREEN


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

SYMBOLIC MAP

PHYSICAL MAP

OUTPUT DATA STREAM


112

SENDING MESSAGE (MAPONLY)


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

PHYSICAL MAP

OUTPUT DATA STREAM


113

SENDING MESSAGE (DATAONLY)


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

SYMBOLIC MAP

OUTPUT DATA STREAM


114

COMMON ERRORS WITH MAPS


MAPFAIL Y More predominant error. Y Normally occurs when there is no data to be transmitted but the user uses any AID keys and receives the input. INVREQ Y Receive Command executed without a map on the screen. INVMPSZ Y Size of the map specified is larger than the screen.
115

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.

....
116

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 Y Interactive and direct definition of Screens on Terminals. Y SDF automatically generates BMS macro code. So programmers are relieved from the troubles of coding Assembler macros. Y Provides interactive TEST facility. Y Provides some additional utilities like COPY, DELETE, RENAME functions & Directory Listing.
117

EXCEPTION HANDLING

SESSION # 6
118

EXCEPTION HANDLING IN CICS


RESP HANDLE CONDITION IGNORE CONDITION HANDLE AID HANDLE ABEND

119

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 approach has an advantage over the HANDLE CONDITION approach, because this makes the program more structured.

120

The following is the procedure to use the RESP option in a CICS command : 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. 3. After command execution, check the response code in the response field with DFHRESP(xxxx), where xxxx is : NORMAL for normal completion. Any exceptional comdition.

121

Example : WORKING-STORAGE SECTION. 77 WS-RETCODE PIC S9(8) COMP. PROCEDURE DIVISION. . . EXEC CICS SEND FROM (_____) 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. GO TO GENERAL-ERR-PARA. NORMAL-PARA. LENGERR-PARA.

122

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. If the SEND command completes normally, control will be passed to NORMAL-PARA. If a LENGERR is encountered , control will be passed to LENGERR-PARA. If any other exceptional condition is encountered, control will be passed to GENERAL-ERR-PARA.

123

HANDLE CONDITION COMMAND


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

124

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

IGNORE CONDITION COMMAND

The IGNORE CONDITION command causes no action to be taken if the specified condition occurs in the 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.

126

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.

127

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

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

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) attention id3 (ROUTINE3) END-EXEC.

HANDLE AID COMMAND

129

EXAMPLE

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

130

HANDLE ABEND COMMAND

The HANDLE ABEND command is used to intercept an 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.

131

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

EXAMPLE
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). : PROCEDURE DIVISION. : EXEC CICS HANDLE ABEND LABEL(ABEND-ROUTINE) END-EXEC. : 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.

133

EXEC CICS HANDLE ABEND CANCEL 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. At the completion of the HANDLE ABEND/CANCEL command, the previous HANDLE ABEND request will be cancelled. At the completion of the ABEND command, the task will be terminated with user code 9999.

134

TRANSIENT DATA QUEUES

SESSION # 7
135

TRANSIENT DATA QUEUE

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

136

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

TRANSIENT DATA CONTROL


The term Queue is used because records are accessed in sequential mode, as in a queue 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 Control Table (DCT)

138

TRANSIENT DATA CONTROL


Types of TD Queues... INTRA PARTITION TDQ Y A group of sequential records which are produced & processed by same and/or different Transactions within the same CICS region. Y All Intra partition TD Queues are stored in one VSAM physical file in the CICS region which is prepared by system programmer and maintained by CICS Continued ...
139

TRANSIENT DATA CONTROL


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

TRANSIENT DATA CONTROL


Types of TD Queues... (cont.) EXTRA PARTITION TDQ Y A group of sequential records which interface between transactions of different CICS regions and other systems outside CICS region Y In Input Extra Partition TDQ, records are created by programs outside the CICS region, (like...batch jobs, TSO, PC etc.) and are processed by CICS transaction Continued ...
141

TRANSIENT DATA CONTROL


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

TRANSIENT DATA CONTROL


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

Continued ...
143

TRANSIENT DATA CONTROL


EXTRA PARTITION TDQ (cont.) Some typical applications of Extra Partition TD Qs Y Interface to Batch (or TSO or PC ) jobs CICS App. pgm-----TDQ-----File-----Batch job. Y Interface from Batch (or TSO or PC ) jobs Batch job-----TDQ-----File-----CICS App. pgm.

144

TRANSIENT DATA CONTROL


TDQ Commands Y WRITEQ TD - Writes record in Q for both types Y READQ TD - Read record from Q for both types

Y 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

145

TRANSIENT DATA CONTROL


WRITEQ TD Syntax EXEC CICS WRITEQ TD QUEUE ( <name> ) FROM ( data-area ) [ LENGTH ( data-value ) ] END-EXEC. EXCEPTIONS Y QIDERR Y LENGERR Y NOSPACE - DCT entry not found for the Q - length specified is greater than maximum length given in DCT - no space available in TDQ
146

TRANSIENT DATA CONTROL


READQ TD Syntax EXEC CICS READQ TD QUEUE ( <name> ) INTO ( data-area ) [ LENGTH ( data-value ) ] END-EXEC. EXCEPTIONS Y QIDERR Y LENGERR Y QZERO - DCT entry not found for the Q - length specified is not the same as that specified in DCT - no more items to read in the Q
147

TRANSIENT DATA CONTROL


DELETEQ TD Syntax EXEC CICS DELETEQ TD QUEUE ( <name> ) END-EXEC. EXCEPTIONS Y QIDERR - DCT entry not found for the Q

148

DESTINATION CONTROL TABLE


DCT`s primary function is to register Control Information of all TD Queues Destination Control Program uses this DCT for 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)

149

AUTOMATIC TASK INITIATION (ATI)


ATI is a facility through which another transaction can be initiated automatically When the number of records in an Intra Partition TDQ 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 Continued ...
150

AUTOMATIC TASK INITIATION (ATI)


Applications... Y 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 Y Report Print Similarly records can be accumulated, and at certain trigger level another transaction can be started to print the records

151

TEMPORARY STORAGE QUEUES

SESSION # 8
152

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. TSQ is identified by Queue-ID (1 to 8 bytes) & record within Queue is identified by relative position called Item Number. Continued ...
153

CHARACTERISTICS OF TSQS (contd...)


Application programs use TSQs as scratch pad memory facility for any purposes. Records once stored remain accessible until entire TSQ is 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 ...
154

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

TSQ AVAILABLE COMMANDS


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.

156

WORKING-STORAGE SECTION. 01 TSQ-QID. 05 TSQ-QID-DIV 05 TSQ-QID-TERM 05 TSQ-QID-APPL 05 TSQ-QID-NUM 01 TSQ-DATA. 05 TSQ-FIELD1 05 TSQ-FIELD2 77 TSQ-LEN 77 TSQ-ITEM

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

PROCEDURE DIVISION. .................... CONSTRUCT QID. MOVE EIBTRMID TO TSQ-QID-TERM. MOVE I TO TSQ-QID-APPL. MOVE 1 TO TSQ-QID-NUM. ...................(Edit TSQ data).................. MOVE 200 TO TSQ-LEN. Contd...............

157

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

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

158

INTERVAL & TASK CONTROL

SESSION # 9
159

INTERVAL CONTROL & TASK CONTROL

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

160

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.

161

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

INTERVAL CONTROL
VARIOUS DATE / TIME FORMATS Y Y Y Y Y Y Y DDMMYY / MMYYDD / YYMMDD / YYDDD DATE / DATESEP / DATEFORM YEAR TIME / TIMESEP DAYOFWEEK / DAYOFMONTH DAYCOUNT MONTHOFYEAR In the latest release of CICS, year is in YYYY format
163

NOTE :

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. EXEC CICS START TRANID(ABCD) TERMID(TTTT) TIME( 090000 ) END-EXEC. // ABCD will be initiated at 9.00 AM

164

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

165

TASK CONTROL
A few KCP Commands... Y ENQ to gain exclusive control over resource

DEQ -to release resource on exclusive control SUSPEND - to suspend a task

166

INTERCOMMUNICATION

SESSION # 10
167

INTER COMMUNICATION MULTI REGION OPERATION & INTER SYSTEM COMMUNICATION


OBJECTIVES To get an introduction on MRO and ISC

168

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 Y other CICS regions in the same processor Y CICS region in other processors and even Y non-CICS regions Inter Communication can be achieved in two ways... Y Multi Region Operation ( MRO ) Y Inter System Communication ( ISC )

169

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 same environment under the same processor is termed as MRO

170

Accounting database

MRO Example Multiple Departmental System


Processor 1 Accounting System CICS 1 Inventory System CICS 2

Operating System

Sales System CICS 3

Sales database
171

Inventory database

MULTI REGION OPERATION (MRO)


ADVANTAGES Y Functional Independence Since operation of the CICS systems are 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 Y Performance Enhancement System performance can be tuned independently for each system based on the relative requirements and priority thus improving the overall efficiency Continued ...
172

MULTI REGION OPERATION (MRO)


ADVANTAGES (cont.) Y Security Systems being independent, greater security is achieved Y Non Redundant Same data is shared by all the systems so there are no multiple copies Y Project Phasing Since there are different systems present, the projects can be easily divided and developed individually

Continued ...
173

MULTI REGION OPERATION (MRO)

Disadvantages Y In MRO all operations must be centralized (more specifically in Uni.-Processor) and hence MRO is not suitable for distributed applications (Spanning several offices/ processors)

174

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 on System Network Architecture (SNA) which 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 )
175

Inter System Communication (ISC)


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

176

Accounting database

Typical example ISC Distributed Corporate System


Operating System Accounting System CICS

CITY 1

Operating System Sales System CICS Processor 2

Processor 1

Operating System Inventory System CICS Processor 3

SNA

CITY 2
Sales database
177

CITY 3
Inventory database

SESSION # 11

178

DEBUGGING CICS EXECUTION DIAGNOSTIC FACILITY ( CEDF )

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

179

DEBUGGING UTILITIES
Other CICS supplied debugging utilities include Y Transaction Dump Y Command Level Interpreter Y Temporary Storage Browse ( CECI ) ( CEBR )

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

180

EXECUTION DIAGNOSTIC FACILITY (EDF)


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

EFFICIENT CICS PROGRAMMING

SESSION # 12
182

EFFICIENT CICS PROGRAMMING

OBJECTIVES To get an introduction to develope efficient CICS applications

183

EFFICIENT CICS PROGRAMMING

Considerations to be made while designing an ON - LINE application Y Y Y Processing Requirements Screen requirements On-Line printing requirements Continued ...
184

EFFICIENT CICS PROGRAMMING

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

185

EFFICIENT CICS PROGRAMMING


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

EFFICIENT CICS PROGRAMMING


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

EFFICIENT CICS PROGRAMMING


Considerations to be made to improve System Performance ( cont. ) Y Reduce traffic on the line where ever possible Y While browsing files, avoid Multi Files Browsing Y Learn to use GENERIC key option. - END 188

S-ar putea să vă placă și