cics tutorial - hcl - vijayanand m - 40145533
Post on 21-Nov-2014
133 Views
Preview:
TRANSCRIPT
1
CICS
Customer Information Control System
Training Material
.
HCL TECHNOLOGIES
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. In Batch, Sequential, Random, concurrent. Scheduled Can be entered as data E.g. Keypunch,Data Coding 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
Batch System V/S Online System
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
INTRODUCTION TO CICS
CICS is one of the most popular DB / DC(Data Base / Data Communication) Control System.Also, it is an Online Transaction Processor OLTP.
Macro Level : Initial version of CICS was Macro Level, under which application programs used Assembler-macros for requesting CICS services. This work was quite cumbersome &
required special skills.
Command Level : In the later upgraded version, CICS commands are high level language version of macros, one
command achieves service achieved by series of macros.Development became more easier.
7
INTRODUCTION TO CICS (contd...)
Product Operating System.
CICS / MVS Ver. 2 Release 1 MVS/XA,MVS/ESA
CICS / OSVS Ver. 1 Release 7 MVS/XA,MVS
CICS / DOS/VSE Ver. 1 Release 7 VSE
CICS / VM Ver. 2 Release 1 VM/SP
CICS / OS / 2 OS/2
8
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 ...
9
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.
10
VSAMDiskFiles
CICS Appln.Program
VTAM / TCAM
Terminal Users
11
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
12
VOCABULARY
Multi User Multi Tasking Multi Programming Multi Threading Job Task Transaction Reentrancy Quasi Reentrancy
13
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.
14
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.
15
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.
16
CICS COMPONENTS
Control Programs ( Management Modules)
Control Tables
Control Blocks
CICS core nucleus consists of Control Programs & their corresponding Control Tables.
17
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
18
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...
19
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...
20
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 ).
21
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
22
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...
23
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.
24
In addition to the above basic procedures, the detailed CICSsystem environment must be prepared properly by the systemprogrammers or application programmers. For example :
The terminal must be registered in the TCT.
The CICS user identifier must be registered in the SNT.
Other CICS tables (viz. FCT, JCT, DCT) must be prepared for the application program, if required.
Additional Preparation Required
25
COBOL Program with
CICS Statements
CICS Preprocessor
COBOL Source Code
COBOL Compiler
Object Module
LinkerLoad
Module
STEPS IN APPLICATION DEVELOPMENT
26
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.
27
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
28
SIGN ON -The primary function of CICS SIGN ON is to associate CICS user identifier with CICS system in terms of security, Priority and other functions.CESN or CSSN is CICS supplied transaction which prompts SIGN ON screen as shown. Complete SIGN ON by giving
correct USERID & PASSWORD Unless SIGN ON process is complete NO CICS transaction can be invoked.
SIGN OFF- Primary functions of SIGN OFF is to disassociate CICS user identifier from CICS Region. For SIGN OFF use CICS supplied transaction CSSF.
CICS/VS SIGNON - enter userid
USERID:PASSWORD:
29
CICS SERVICES
Terminal Control
Program Control
File Control
Basic Mapping Support ( B M S )
Transient Data & Temporary Storage Control
Interval & Task Control
Storage Control
30
TERMINAL CONTROL SERVICE
SESSION # 2
31
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.
32
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
33
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 )
34
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)
35
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...
36
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)
37
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.
38
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.
39
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 )
40
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
…
41
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
42
PROGRAM CONTROL
SESSION # 3
43
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
44
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
45
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.
46
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
47
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
48
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...
49
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 .
50
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
51
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
52
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.
53
EXEC CICS RELEASEPROGRAM (Program Name)
END-EXEC.
Parameters :
PROGRAM - Name of the program to be released
RELEASE command Syntax
54
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.
55
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
56
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
57
CICS SYSTEM
First Program:LINK
Second Program:RETURN
LINK flow of control
58
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.
59
EXEC CICS XCTLPROGRAM (Program Name)COMMAREA (Data-Area)LENGTH (Len)INPUTMSG (Data-Area)INPUTMSGLEN (Len)
END-EXEC.
XCTL command Syntax
60
Important Parameters :
PROGRAM - Program to be XCTLed.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
61
CICS SYSTEM
First Program:XCTL
Second Program:RETURN
XCTL flow of control
62
DIFFERENCE BETWEEN LINK & XCTL
Program 1.
CICS
Program 2.
LINK
Program 1.
CICS
Program 2.
XCTL
63
RETURN command syntax
EXEC CICS RETURNTRANSID (TRNID)COMMAREA (Commarea)LENGTH (Length of Commarea)IMMEDIATEINPUTMSG (Data-Area)INPUTMSGLEN (Len)
END-EXEC.
64
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
65
Modes of Application Programming
CONVERSATIONAL
NON CONVERSATIONAL
PSEUDO CONVERSATIONAL
66
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...
67
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
68
RESTRICTIONS in COBOL when using CICS
Data related entries cannot be used inENVIRONMENT DIVISION &
DATA DIVISION.
Following statements in COBOL cannot be used in CICS.
IDENTIFICATION DIVISIONNo restrictions
ENVIRONMENT DIVISION• SELECT Statement
Continued...
69
RESTRICTIONS in COBOL when using CICS
DATA DIVISION• FD Entry• REPORT SECTION
PROCEDURE DIVISION• SORT • RELEASE • RETURN
Debugging Statements• EXHIBIT • TRACE
Continued...
70
RESTRICTIONS in COBOL when using CICS
PROCEDURE DIVISIONI/O Statements• ACCEPT • DISPLAY
File Handling commands• OPEN • CLOSE • READ • WRITE • REWRITE • DELETE
Continued...
71
RESTRICTIONS in COBOL when using CICS
PROCEDURE DIVISIONProgram Termination commands• STOP RUN• EXIT PROGRAM• GOBACK
String Handling statements• STRING• UNSTRING• INSPECT• EXAMINE
Continued...
72
RESTRICTIONS in COBOL when using CICS
PROCEDURE DIVISIONCalendar commands• CURRENT-DATE• DATE• DAY
73
FILE CONTROL
SESSION # 4
74
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...
75
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...
76
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...
77
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
78
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.
79
EXAMPLE
Suppose that file FILEAAA has records in the following order :
BO001BC001DC001DC002NY000NY001NY002PH001PH002
80
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.
81
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
82
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.
83
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.
84
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.
85
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.
86
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.
87
BROWSE COMMANDS
CICS provides a special set of browse commands
STARTBR
READNEXT
READPREV
RESETBR
ENDBR
Continued...
88
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 restablish the new position and go to step 3. RESETBR7. Terminate the BROWSE operation. ENDBR8. End.
89
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
90
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.
91
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.
92
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.
93
ENDBR COMMAND SYNTAX
Ending the current Browse operation:
EXEC CICS ENDBRDATASET (filename)[REQID (data-value)]
END-EXEC
94
BASIC MAPPING SUPPORT
SESSION # 5
95
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
96
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
97
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
98
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.
99
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
100
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
102
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
103
MAP & MAPSET
MAP
Representation of one formatted screen
MAPSET
Collection of one or more map(s)
104
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.
105
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.
106
GENERATION OF MAPS
BMS Macro
ASSEMBLE
Symbolic Map
Link - Edit
Physical Map
COPY LIB LOAD LIB
107
USING MAPS IN A PROGRAM
Symbolicmap
Load Module&
Physical map
Copy Library
Load Library
SourceCode CICS Translator
COBOL Compiler
Link Edit
108
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
109
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.
110
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
111
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...
112
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
113
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...
114
DFHMDI Syntax
Mapname DFHMDI SIZE = (LINE,COLUMN), JUSTIFY = | LEFT / RIGHT |,
CTRL = (ctrl1,ctrl2,…)
// This CTRL has precedence over the definition in Map Set
115
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.
116
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
117
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
118
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.
119
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
120
SENDING MESSAGE TO SCREEN
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’)
END-EXEC.
SYMBOLICMAP
PHYSICALMAP
OUTPUT DATASTREAM
121
SENDING MESSAGE (MAPONLY)
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’) MAPONLY
END-EXEC.PHYSICAL
MAP
OUTPUT DATASTREAM
122
SENDING MESSAGE (DATAONLY)
EXEC CICSSEND MAP (‘MAP1’)MAPSET (‘MAPSETA’) DATAONLY
END-EXEC.SYMBOLIC
MAP
OUTPUT DATASTREAM
123
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.
124
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. ....
125
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.
126
EXCEPTION HANDLING
SESSION # 6
127
EXCEPTION HANDLING IN CICS
RESP
HANDLE CONDITION
IGNORE CONDITION
HANDLE AID
HANDLE ABEND
128
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.
129
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.
130
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.
131
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.
132
HANDLE CONDITION COMMAND
EXEC CICS HANDLE CONDITION
Exception Condition1 (ROUTINE 1)
Exception Condition2 (ROUTINE 2)
Exception Condition3 (ROUTINE 3)
END-EXEC.
133
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..............................................
134
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.
135
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.
136
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.
137
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.
138
EXAMPLE
EXEC CICS HANDLE AIDPF3(END-ROUTINE)PA1(CANCEL-ROUTINE)ENTER(NORMAL-ROUTINE)ANYKEY(WRONG-KEY-ROUTINE)
END-EXEC.
139
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.
140
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.
141
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) NOHANDLEEND-EXEC.
142
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’.
143
TRANSIENT DATA QUEUES
SESSION # 7
144
TRANSIENT DATA QUEUE
OBJECTIVES
To get an introduction on Transient Data Queue
To learn to use TD Queues
145
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 ...
146
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)
147
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 ...
148
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
149
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 ...
150
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 ...
151
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 ...
152
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.
153
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
154
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
155
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’
156
TRANSIENT DATA CONTROL
DELETEQ TD Syntax
EXEC CICS DELETEQ TDQUEUE ( <name> )
END-EXEC.
EXCEPTIONS
QIDERR - DCT entry not found for the ‘Q’
157
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)
158
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 ...
159
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
160
TEMPORARY STORAGE QUEUES
SESSION # 8
161
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 ...
162
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 ...
163
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...
164
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.
165
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...............
166
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 nort exist, a TSQ will be created with QID=AttttI01,where tttt is the terminal id.
167
INTERVAL & TASK CONTROL
SESSION # 9
168
INTERVAL CONTROL & TASK CONTROL
OBJECTIVES
To know more on Interval Control and Time related functions
To know more on Task management
169
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.
170
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
171
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
172
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
173
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.,
174
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
175
INTERCOMMUNICATION
SESSION # 10
176
INTER COMMUNICATION
MULTI REGION OPERATION &INTER SYSTEM COMMUNICATION
OBJECTIVES
To get an introduction on MRO and ISC
177
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 )
178
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
179
MRO ExampleMultiple Departmental System
Accounting database
Inventorydatabase
Salesdatabase
AccountingSystem CICS 1
SalesSystem CICS 3
InventorySystem CICS 2
Operating SystemProcessor 1
180
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 ...
181
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 ...
182
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)
183
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 )
184
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
185
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
186
SESSION # 11
187
DEBUGGINGCICS EXECUTION DIAGNOSTIC FACILITY
( CEDF )
OBJECTIVES
To know more about diagnostic facilities in CICS
To learn to use CEDF
188
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 )
189
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
190
EFFICIENT CICS PROGRAMMING
SESSION # 12
191
EFFICIENT CICS PROGRAMMING
OBJECTIVES
To get an introduction to develope efficient CICS applications
192
EFFICIENT CICS PROGRAMMING
Considerations to be made while designing an ON - LINE application
Processing Requirements
Screen requirements
On-Line printing requirements
Continued ...
193
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
194
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 ...
195
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 ...
196
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 -
top related