Date post: | 12-Sep-2014 |
Category: |
Documents |
Upload: | vikram-ramakrishnan |
View: | 145 times |
Download: | 7 times |
1
CICS
Customer Information Control System
28th July 2009
.
2
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
3
Customer Information Control System
SESSION # 1
4
Batch System V/S Online System
Input Data from card,tape,disk. Data from terminal. Sequential, Random, concurrent. Scheduled Can be entered as data arrive. Update Reserved during a job. Concurrent.Of file Other jobs have to wait. Instant.
File I/O I/O must be in sequence. I/O can be concurrent. Output Printed reports,O/P files. Messages thrown to
console, Updated files System log, Reports.
5
Start of Operator (or OS) initiates Entering Trans-ID job job. triggers the transaction.
Process Single task & thread Multitask & Multithreadmode Priority in job scheduling. Priority processing.
End of job Each job. Each transaction .
Turn- Usually much longer. Almost Instantaneous.around
Resources Less Usage. More Usage.
Appln. Monthly Sales Report. Airline Reservation .
6
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 ...
7
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.
8
VSAMDiskFiles
CICS Application.Program
VTAM / TCAM
Terminal Users
9
OPERATING SYSTEM
Database AccessMethod
(DL/1,DB2)
Data AccessMethod
(VSAM, BDAM)
TelecommunicationAccess Method
(VTAM, TCAM)
OtherSystems
Terminals
CICS / MVS
Data-handlingFunctions
System Services
MonitoringFunctions
ApplicationProgramServices
Data-CommFunctions
CICS Application Programs(COBOL, PL/1, Assembler)
DataStorage
10
VOCABULARY
Multi User Multi Tasking Multi Programming Multi Threading Job Task Transaction Reentrancy Quasi Reentrancy
11
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.
12
MULTITHREADING
Multithreading is the system environment where the tasksare 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.
13
REENTRANCY
In order to make multithreading possible, an applicationprogram 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.
14
CICS COMPONENTS
Control Programs ( Management Modules)
Control Tables
Control Blocks
CICS core nucleus consists of Control Programs & their corresponding Control Tables.
15
Control Program Control Tables
File Control Program File Control Table
Interval Control Program Interval Control Table
Journal Control Program Journal Control Table
Program Control Program Processing Program Table
Task Control Program Program Control Table
Storage Control Program Storage Control Table
Terminal Control Program Terminal Control Table
Temporary Storage Program Temporary Storage Table
Transient Data Program Destination Control Table
16
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...
17
EIB INFORMATION (contd...)
EIBCALEN : Length of DFHCOMM AREA ( S9 (4) COMP ) .
EIBDATE : Date when this task is Initiated. ( S9 (4) COMP-3 ).
EIBFN : Function code of the last CICS command in HEX (2 BYTES).
EIBRCODE : Response code of the last function ( 6 BYTES )
Continued...
18
EIB INFORMATION (contd...)
EIBTASKN : Task Number of the Current Task ( S9 (7) COMP-3 ).
EIBTIME : Time when the Current Task was started ( S9 (7) COMP-3 ).
EIBTRMID : Terminal-ID from where task Initiated ( 1-4 characters ).
EIBTRNID : Transaction-id of Current Task (1-4 characters ).
19
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
20
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...
21
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.
22
COBOL Program with
CICS StatementsCICS
Preprocessor
COBOL Source Code
COBOL Compiler
Object Module
Link EditLoad
Module
STEPS IN APPLICATION DEVELOPMENT
23
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.
24
USER ENTERS TRANS-ID (AAAA)PCT
Transaction Program
AAAA AAAPGM1BBBB BBBPGM1CCCC CCCPGM2
CICS locates trans-idAAAA in program control table
PPT
Program Location
AAAPGM1 On DiskBBBPGM1 In StorageCCCPGM2 On Disk
CICS locates programAAAPGM1 in the processing programtable
Library Load Module
ORDPROG AAAPGM1ORGPROG BBBPGM1DDMPROG CCCPGM2
CICS locates load moduleAAAPGM1 on disk, loadsit into memory, and startsthe task
CICS Address Space
AAAPGM1
BBBPGM1
25
CICS SERVICES
Terminal Control
Program Control
File Control
Basic Mapping Support ( B M S )
Transient Data & Temporary Storage Control
Interval & Task Control
Storage Control
26
TERMINAL CONTROL SERVICE
SESSION # 2
27
INTRODUCTION
The CICS Terminal Control Program (TCP) providescommunication services between application programs andterminals, using the information defined in the Terminal Control Table. Usually, unformatted screens are used for the Terminal Control Operations.
28
TERMINAL CONTROL COMMANDS IN CICS
SEND – To print text onto the terminal screen
RECEIVE – 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
29
SEND COMMAND SYNTAXEXEC 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 )
30
RECEIVE COMMAND SYNTAX
EXEC CICSRECEIVE 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)
31
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...
32
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)
33
ISSUE PRINT COMMAND
The ISSUE PRINT Command is used to make a hard copy of Screen on the local printer.
Syntax:
EXEC CICSISSUE PRINT
END-EXEC.
34
ISSUE COPY COMMAND
The ISSUE COPY Command is used to copy a screen image of the terminal into another terminal.
Syntax:
EXEC CICSISSUE COPY
TERMID (Terminal Name)END-EXEC.
35
HANDLE AID COMMAND SYNTAX
EXEC CICSHANDLE 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 )
36
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 values- Continued
…
37
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
38
PROGRAM CONTROL
SESSION # 3
39
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
40
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
41
INTERPROGRAM COMMUNICATIONPassing 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.
42
PASSING DATA BETWEEN PROGRAMS
TRANSID: TRN1Program 1
Working-storage Section
TRANSID: TRN2
Program 2
Procedure Division. . . . .
RETURNTRANSID(TRN2)COMMAREA(COM)
Linkage Section.
» EIBCALEN contains the Size of COM
COM
COMMAREA
DFHCOMMAREA
43
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
44
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...
45
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 .
46
Important Parameters :
PROGRAM - Program to be loaded into CICS address spaceSET – Pointer reference to the address of Table/Program/MapLENGTH – 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
LOAD command Syntax
47
LOAD command
Example:EXEC CICS LOAD
PROGRAM (‘lodprg’)SET (ptrvar)LENGTH (lenvar)
END-EXEC .
Exceptions:PGMIDERR – Program not foundLENGERR – Load module > 32 KNOAUTH – Security check error
48
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.
49
EXEC CICS RELEASEPROGRAM (Program Name)
END-EXEC.
Parameters :
PROGRAM - Name of the program to be released
RELEASE command Syntax
50
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.
51
EXEC CICS LINKPROGRAM (Program Name)COMMAREA (Data-Area)LENGTH (Len)DATALENGTH (Len)INPUTMSG (Data-Area)INPUTMSGLEN (Len)SYSID (value)SYSCONRETURNTRANSID (value)
END-EXEC.
LINK command syntax
52
Important Parameters :
PROGRAM - Program to be linked.COMMAREA - Data area to be passed to the called
programLENGTH - S9(4) COMP. Length of data area to be
passedINPUTMSG - Data area to be passed to the called
program as an inputINPUTMSGLEN - S9(4) COMP. Length of data area to be
passed as input
LINK command Syntax
53
CICS SYSTEM
First Program:LINK
Second Program:RETURN
LINK flow of control
54
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.
55
EXEC CICS XCTLPROGRAM (Program Name)COMMAREA (Data-Area)LENGTH (Len)INPUTMSG (Data-Area)INPUTMSGLEN (Len)
END-EXEC.
XCTL command Syntax
56
Important Parameters :
PROGRAM - Program to be XCTL.COMMAREA - Data area to be passed to the called
programLENGTH - S9(4) COMP. Length of data area to be
passedINPUTMSG - Data area to be passed to the called
program as an inputINPUTMSGLEN - S9(4) COMP. Length of data area to be
passed as input
XCTL command Syntax
57
CICS SYSTEM
First Program:XCTL
Second Program:RETURN
XCTL flow of control
58
DIFFERENCE BETWEEN LINK & XCTL
Program 1.
CICS
Program 2.
LINK
Program 1.
CICS
Program 2.
XCTL
59
RETURN command syntax
EXEC CICS RETURNTRANSID (TRNID)COMMAREA (Commarea)LENGTH (Length of Commarea)IMMEDIATEINPUTMSG (Data-Area)INPUTMSGLEN (Len)
END-EXEC.
60
RETURN command syntax
Important Parameters :
TRANSID - Transaction id of the next program to start after the return of the current one.
COMMAREA - Data area to be passed to the next program
LENGTH - S9(4) COMP. Length of data area to be passed
IMMEDIATE - Parameter to start the next transaction immediately after the execution of the RETURN command, without user intervention
61
Modes of Application Programming
CONVERSATIONAL
NON CONVERSATIONAL
PSEUDO CONVERSATIONAL
62
Modes of Application Programming
Conversational Direct interaction of user with the system System waits for the user input
Non Conversational Only 1 request from user to system
Continued...
63
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 gives input
64
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.
65
FILE CONTROL
SESSION # 4
66
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 SetESDS : Entry Sequenced Data Set
KSDS : Key Sequenced Data SetRRDS : Relative Record Data Set
Continued...
67
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 as-
INPUT-OUTPUT SECTIONSELECT statementFD entryOPEN/CLOSEJCL
Continued...
68
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...
69
FILE CONTROL SERVICE(contd)
Available Commands -
READ : Read a Record
WRITE :Write a Record
REWRITE : Update a Record
DELETE : Delete a Record
UNLOCK : To release Exclusive control acquired for
update
70
READ COMMAND SYNTAX
EXEC CICS READINTO (rec-area) // Record to be read LENGTH (length) // Length of recordDATASET (filename) // File nameRIDFLD (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.
71
EXAMPLE
Suppose that file FILEAAA has records in the following order :
BO001BC001DC001DC002NY000NY001NY002PH001PH002
72
WORKING-STORAGE SECTION.77 WK-LEN PIC S9(4) COMP.01 FILE-IOAREA.
05 REC-A.10 REC-A-KEY
15 REC-A-KEY-CITY PIC XX.15 REC-A-KEY-SEQ PIC 999.
10 REC-A-DETAIL PIC X (30)...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.
73
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
74
WRITE COMMAND SYNTAX EXEC CICS WRITE
FROM (rec-area) LENGTH (length)DATASET (filename)RIDFLD (key-area)MASSINSERT // Allows group of records
END-EXEC. // simultaneouslyEg: EXEC CICS WRITE
FROM (FILE-IOAREA)
LENGTH (WK-LEN)
DATASET (‘FILEAAA’)
RIDFLD(REC-A-KEY)
END-EXEC.
75
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.
76
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.
77
DELETE COMMAND SYNTAX
// To delete a record after it has been ReadEXEC CICS DELETE
DATASET (filename)END-EXEC.
// To delete a record/group satisfying certain conditionEXEC CICS DELETE
DATASET (filename)RIDFLD(data-area)[GENERIC][RBA/RRN]
END-EXEC.
78
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.
79
BROWSE COMMANDS
CICS provides a special set of browse commands
STARTBR
READNEXT
READPREV
RESETBR
ENDBR
Continued...
80
ORDER OF BROWSE OPERATION
EVENTS COMMANDS1. Start.2. Establish starting position STARTBR3. Retrieve a record. READNEXT
OR READPREV4. 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. RESETBR7. Terminate the BROWSE operation. ENDBR8. End.
81
STARTBR COMMAND SYNTAX
To initiate and establish position for BROWSE.
EXEC CICS STARTBRDATASET (filename)RIDFLD (key-area)[GENERIC][GTEQ / EQUAL][RRN / RBA ]
END-EXEC.Exceptions:INVREQ – Read operation not permittedNOTFND – Record not found
82
READNEXT COMMAND SYNTAX
Retrieving records sequentially in ascending sequence.
EXEC CICS READNEXTINTO (rec-area)DATASET (filename)RIDFLD (key-area)LENGTH (length)RBA/RRN
END-EXEC.
83
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.
84
RESETBR COMMAND SYNTAX
Altering the starting position of current Browse operation
EXEC CICS RESETBRDATASET (filename)RIDFLD (key-area)[REQID (data-value)][GTEQ / EQUAL]
END-EXEC.
85
ENDBR COMMAND SYNTAX
Ending the current Browse operation:
EXEC CICS ENDBRDATASET (filename)[REQID (data-value)]
END-EXEC
86
BASIC MAPPING SUPPORT
SESSION # 5
87
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
88
The CICS Terminal Control Program(TCP) provides
communication services between user-written applications and terminals, using information
defined in the Terminal Control Table (TCT).
IBM TERMINALS
89
Many types terminals are supported by CICS for data communication.
A few examples....
IBM 3270 Information Display System IBM 3600 Finance Communication System IBM 8775 Advanced terminals
Normally, 3270 are the most commonly used terminals with Mainframes
IBM TERMINALS
90
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.
91
NMDS for an IBM 3270 terminal
S F - Start of field Character
C Info. Field 1 Field 2.....
Field 1
Text Data Attr Byte S F Addr C Info. Output Data Stream
Input Data Stream
Text Data Addr C. Info
Field1
Attr Byte
92
IBM TERMINALS
Problems with NMDS are that it is... Device Dependent (Hardware specific) Format Dependent Difficult to code
To make the application programs independent of terminal hardware we go for device and format independent Basic Mapping Support, shortly BMS.
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
94
FUNCTIONS OF BMS
To remove device dependent codes and constantinformation 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
95
MAP & MAPSET
MAP
Representation of one formatted screen
MAPSET
Collection of one or more map(s)
96
TYPES OF MAPS
PHYSICAL MAP
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.
It is loaded when executing program requests send/receive BMS services.
97
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 the compiler during compilation of CICS application program.
98
GENERATION OF MAPS
BMS Macro
ASSEMBLE
Symbolic Map
Link - Edit
Physical Map
COPY LIB LOAD LIB
99
USING MAPS IN A PROGRAM
Symbolicmap
Load Module&
Physical map
Copy Library
Load Library
SourceCode CICS Translator
COBOL Compiler
Link Edit
100
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
101
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 non- blank 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.
102
Coding a BMS macro
Macro definition for Fields, Maps and Mapsets :-
DFHMSD defines a Mapset one per mapset / BMS file
DFHMDI defines a Map one per Map & one or more Maps per Mapset
DFHMDF defines a Field one per field & one or more Fields per Map
103
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 while assembling the code specify whether the maps will be used as I/P, O/P or both
Continued...
104
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
105
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,
specify the size and position of the map on the screen
Continued...
106
DFHMDI Syntax
Mapname DFHMDI SIZE = (LINE,COLUMN), JUSTIFY = | LEFT / RIGHT |,
CTRL = (ctrl1,ctrl2,…)
// This CTRL has precedence over the definition in Map Set
107
DFHMDF
This Operation denotes that the definitions are for a Field within a Map.
The Operands, apart form other things, 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.
108
DFHMDF Syntax
Fieldname DFHMDF POS=(LINE,COLUMN), //Specifies position in the Map.
LENGTH=<1 TO 255>, // Specifies SizeINITIAL=’<value>’, // Initialize textGROUPNAME=<GROUPNAME>,
//Allows Subdivision of fieldPICIN = ‘<pic_clause>’,PICOUT = ‘<pic_clause>’,
// For formatting fields E.g. : $99.99 / 999.99DBJUSTIFY=|LEFT/BLANK/RIGHT/ZERO|,OCCURS= <Number_of_Occurrences>,ATTRB=(attr1,attr2…)
//Specifies characteristics of field
109
DFHMDF ATTRIBUTES
1. ASKIP / PROT / UNPROT//Specifies Auto-skip / Protected / Unprotected field2. IC// Insert Cursor initializes cursor position 3. BRT / NORM / DRK // Bright / Normal / Dark Intensity of field4. NUM// Numeric field type5. FSET//Field Set (MDT ON)6. DET// PEN Detectable
110
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.
111
Sample BMS Coding...1 10 1617 72MAPSETA DFHMSD TYPE=MAP,MODE=INOUT, X
CTRL=(FREEKB,FRSET), X LANG=COBOL,TERM=3270
MAP1 DFHMDI SIZE=(24,80),TIOAPFX=Y DFHMDF POS=(1,10),LENGTH=6, X
INITIAL = ‘T I L.’DATE DFHMDF POS=(1,20),LENGTH=8
DFHMDF POS=(3,10),LENGTH=10, X INITIAL=‘ENTER NAME’
NAME DFHMDF POS=(3,25),LENGTH=20, X ATTRB = IC
MAP2 ......
MAP3 ...... DFHMSD TYPE=FINAL //Indicates end of Mapset declaration
END
112
SENDING MESSAGE TO SCREEN
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’)
END-EXEC.
SYMBOLICMAP
PHYSICALMAP
OUTPUT DATASTREAM
113
SENDING MESSAGE (MAPONLY)
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’) MAPONLY
END-EXEC.PHYSICAL
MAP
OUTPUT DATASTREAM
114
SENDING MESSAGE (DATAONLY)
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’) DATAONLY
END-EXEC.SYMBOLIC
MAP
OUTPUT DATASTREAM
115
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.
INVREQ Receive Command executed without a map on the screen.
INVMPSZ Size of the map specified is larger than the screen.
116
COPY BOOKS TO BE INCLUDED FOR USING BMS
.........
WORKING-STORAGE SECTION.COPY DFHAID.
//TO USE FUNCTION KEY RESPONSESCOPY DFHBMSCA.
//BMS COMMON WORK AREACOPY SYMBMAP1.
//USER DEFINED MAP
PROCEDURE DIVISION. ....
117
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 programmers are relieved from the troubles of coding Assembler macros. Provides interactive TEST facility. Provides some additional utilities like COPY, DELETE, RENAME functions & Directory Listing.
118
EXCEPTION HANDLING
SESSION # 6
119
EXCEPTION HANDLING IN CICS
RESP
HANDLE CONDITION
IGNORE CONDITION
HANDLE AID
HANDLE ABEND
120
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 aresponse code at the completion of the command. The applicationprogram 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 morestructured.
121
The following is the procedure to use the RESP option in a CICScommand :
1. Define a fullword binary field (S9(8) COMP) in the WorkingStorage 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.
122
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.
123
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 bepassed to GENERAL-ERR-PARA.
124
HANDLE CONDITION COMMAND
EXEC CICS HANDLE CONDITION
Exception Condition1 (ROUTINE 1)
Exception Condition2 (ROUTINE 2)
Exception Condition3 (ROUTINE 3)
END-EXEC.
125
EXAMPLE
EXEC CICS HANDLE CONDITIONERROR(GEN-ERR-RTN)LENGERR(LENGERR-RTN)
END-EXEC.EXEC CICS RECEIVE
INTO(WK-TIOA)LENGTH(WK-LEN)
END-EXEC.......LENGERR-RTN.........................................GEN-ERR-RTN..............................................
126
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 whichencountered the exceptional condition.
The request by the IGNORE CONDITION command is valid until the subsequent HANDLE CONDITION for the same condition.
127
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.
128
EXAMPLE
EXEC CICS IGNORE CONDITION LENGERREND-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 controlwill be passed to the statement after the RECEIVE command.
129
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)
attention id3 (ROUTINE3)
END-EXEC.
130
EXAMPLE
EXEC CICS HANDLE AIDPF3(END-ROUTINE)PA1(CANCEL-ROUTINE)ENTER(NORMAL-ROUTINE)ANYKEY(WRONG-KEY-ROUTINE)
END-EXEC.
131
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 abnormalconditions of the CICS command execution whereas HANDLE ABEND intercepts abnormal termination.
132
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 aparagraph , respectively, for ABEND processing.CANCEL is used to cancel the previously established HANDLEABEND request.RESET is used to reactivate the previously cancelled HANDLE ABEND request.
133
EXAMPLEWORKING-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) NOHANDLEEND-EXEC.
134
EXEC CICS HANDLE ABEND CANCELEND-EXEC.EXEC CICS ABEND ABCODE(‘9999’)END-EXEC.
During the execution of the program, the following activities willoccur :• If an ABEND occurs, it will be intercepted by the HANDLE ABEND command, and control will be passed to ABEND-ROUTINE.• 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’.
135
TRANSIENT DATA QUEUES
SESSION # 7
136
TRANSIENT DATA QUEUE
OBJECTIVES
To get an introduction on Transient Data Queue
To learn to use TD Queues
137
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 ...
138
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
other- wise called Destination
Each TDQ is identified by 1-4 character identifier called “Destination -id”, which are to be registered in
Destination Control Table (DCT)
139
TRANSIENT DATA CONTROL
Types of TD Queues...
INTRA PARTITION TDQ A group of sequential records which are 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 by system programmer and maintained by CICS Continued ...
140
TRANSIENT DATA CONTROL
INTRA PARTITION TDQ (cont.) From application programmers point of view one record is used at a time sequentially
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 Interface among CICS Transactions Pgm. 1------TDQ------pgm. 2------Report Automatic Task Initiation (ATI) Message Routing Message Broadcasting
141
TRANSIENT DATA CONTROL
Types of TD Queues... (cont.)
EXTRA PARTITION TDQ
A group of sequential records which interface 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, PC etc.) and are processed by CICS transactionContinued ...
142
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 may be a disk/tape/printer/plotter
Therefore for its use, each file must be opened by the CICS region, when used by a Transaction
Continued ...
143
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 an active CICS session
Continued ...
144
TRANSIENT DATA CONTROL
EXTRA PARTITION TDQ (cont.)
Some typical applications of Extra Partition TD Qs
Interface to Batch (or TSO or PC ) jobs
CICS App. pgm-----TDQ-----File-----Batch job.
Interface from Batch (or TSO or PC ) jobs
Batch job-----TDQ-----File-----CICS App. pgm.
145
TRANSIENT DATA CONTROL
TDQ Commands
WRITEQ TD - Writes record in Q for both types
READQ TD - Read record from Q for both types
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
146
TRANSIENT DATA CONTROL
WRITEQ TD Syntax
EXEC CICS WRITEQ TDQUEUE ( <name> )FROM ( data-area )[ LENGTH ( data-value ) ]
END-EXEC.
EXCEPTIONS QIDERR - DCT entry not found for the ‘Q’ LENGERR - length specified is greater than maximum length given in DCT NOSPACE - no space available in TDQ
147
TRANSIENT DATA CONTROL
READQ TD Syntax
EXEC CICS READQ TDQUEUE ( <name> )INTO ( data-area )[ LENGTH ( data-value ) ]
END-EXEC.
EXCEPTIONS QIDERR - DCT entry not found for the ‘Q’ LENGERR - length specified is not the same as that specified in DCT QZERO - no more items to read in the ‘Q’
148
TRANSIENT DATA CONTROL
DELETEQ TD Syntax
EXEC CICS DELETEQ TDQUEUE ( <name> )
END-EXEC.
EXCEPTIONS
QIDERR - DCT entry not found for the ‘Q’
149
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)
150
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 ...
151
AUTOMATIC TASK INITIATION (ATI)
Applications...
Message SwitchingMessages 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
152
TEMPORARY STORAGE QUEUES
SESSION # 8
153
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 ...
154
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 ...
155
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...
156
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.
157
EXAMPLEWORKING-STORAGE SECTION.01 TSQ-QID.
05 TSQ-QID-DIV PIC X VALUE ‘A’.05 TSQ-QID-TERM PIC X(4).05 TSQ-QID-APPL PIC X.05 TSQ-QID-NUM PIC 99.
01 TSQ-DATA.05 TSQ-FIELD1 PIC X(50).05 TSQ-FIELD2 PIC X(150).
77 TSQ-LEN PIC S9(4) COMP.77 TSQ-ITEM 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...............
158
WRITE A QUEUE.
EXEC CICS WRITEQQUEUE(TSQ-QID)FROM(TSQ-DATA)LENGTH(TSQ-LEN)ITEM(TSQ-ITEM)MAIN
END-EXEC.
EXAMPLE ........(Contd.)
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.
159
INTERVAL & TASK CONTROL
SESSION # 9
160
INTERVAL CONTROL & TASK CONTROL
OBJECTIVES
To know more on Interval Control and Time related functions
To know more on Task management
161
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.
162
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 RETRIEVE - to retrieve data stored by START
command for the transaction CANCEL - to cancel effect of previous
interval control command
163
INTERVAL CONTROL
VARIOUS DATE / TIME FORMATS
DDMMYY / MMYYDD / YYMMDD / YYDDD DATE / DATESEP / DATEFORM YEAR TIME / TIMESEP DAYOFWEEK / DAYOFMONTH DAYCOUNT MONTHOFYEAR
NOTE : In the latest release of CICS, year is in YYYY format
164
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 STARTTRANID(‘ABCD’) TERMID(‘TTTT’) TIME( 090000 )
END-EXEC.// ABCD will be initiated at 9.00 AM
165
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.,
166
TASK CONTROL
A few KCP Commands...
ENQ - to gain exclusive control over resource
DEQ - to release resource on exclusive control
SUSPEND - to suspend a task
167
INTERCOMMUNICATION
SESSION # 10
168
INTER COMMUNICATION
MULTI REGION OPERATION &INTER SYSTEM COMMUNICATION
OBJECTIVES
To get an introduction on MRO and ISC
169
INTER COMMUNICATION
CICS Inter Communication is a concept of communicating between various Sub-Systems and CICS in a Multi- System environment
The term ‘Various Sub-Systems’ include other CICS regions in the same processor CICS region in other processors and even non-CICS regions
Inter Communication can be achieved in two ways... Multi Region Operation ( MRO ) Inter System Communication ( ISC )
170
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
171
MRO ExampleMultiple Departmental System
Accounting database
Inventorydatabase
Salesdatabase
AccountingSystem CICS 1
SalesSystem CICS 3
InventorySystem CICS 2
Operating SystemProcessor 1
172
MULTI REGION OPERATION (MRO)
ADVANTAGES Functional Independence
Since operation of the CICS systems are independent of each other, the
owner can have total control over his system 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 each system based on the relative
requirements and priority thus improving the overall efficiency Continued ...
173
MULTI REGION OPERATION (MRO)
ADVANTAGES (cont.) Security
Systems being independent, greater security is 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
Continued ...
174
MULTI REGION OPERATION (MRO)
Disadvantages
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)
175
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 )
176
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 IndependenceTo local CICS, it is transparent on
what hardware & software the remote system is existing on
177
Typical example ISCDistributed Corporate System
Accounting database
Inventorydatabase
Salesdatabase
AccountingSystem CICS
Operating System
Processor 1Operating System
Processor 3
InventorySystem CICS
Operating System
Processor 2
SalesSystem CICS
CITY 1
CITY 3CITY 2
SNA
178
SESSION # 11
179
DEBUGGINGCICS EXECUTION DIAGNOSTIC FACILITY
( CEDF )
OBJECTIVES
To know more about diagnostic facilities in CICS
To learn to use CEDF
180
DEBUGGING UTILITIES
Other CICS supplied debugging utilities include
Transaction Dump
Command Level Interpreter( CECI )
Temporary Storage Browse ( CEBR )
Master Terminal Transaction ( CEMT )
Dynamic File Open / Close ( DFOC )
181
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 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 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
182
EFFICIENT CICS PROGRAMMING
SESSION # 12
183
EFFICIENT CICS PROGRAMMING
OBJECTIVES
To get an introduction to develope efficient CICS applications
184
EFFICIENT CICS PROGRAMMING
Considerations to be made while designing an ON - LINE application
Processing Requirements
Screen requirements
On-Line printing requirements
Continued ...
185
EFFICIENT CICS PROGRAMMING
Considerations to be made while designing an ON - LINE application (cont.)
User Friendliness
System performance and Resource usage
System security, reliability and maintainability
186
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 ...
187
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 ...
188
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 -- END -