You are on page 1of 196

CICS

. System
Customer Information Control

Training Material

HCL TECHNOLOGIES
1
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

2
Customer Information Control System

SESSION # 1

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

4
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 & Multithread


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

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

6
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

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

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

9
VSAM
Disk
CICS Appln.
Program
Files

VTAM / TCAM

Terminal Users

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

CICS / MVS
System
Services Terminals
Monitoring
Data-handling Functions Data-Comm
Functions Functions
Application
Program
Services

CICS Application Programs


(COBOL, PL/1, Assembler)

11
VOCABULARY

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

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

13
MULTITHREADING

Multithreading is the system environment where the tasks


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

14
REENTRANCY

In order to make multithreading possible, an application


program must be reentrant.
A reentrant program is a program which does not modify itself
so that it can reenter to itself and continue processing after an
interruption by the operating system.

15
CICS COMPONENTS

 Control Programs ( Management Modules)

 Control Tables

 Control Blocks

CICS core nucleus consists of Control Programs & their


corresponding Control Tables.

16
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

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

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

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

20
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
21
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...

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

23
Additional Preparation Required

In addition to the above basic procedures, the detailed CICS


system environment must be prepared properly by the system
programmers or application programmers. For example :

 The terminal must be registered in the TCT.

 The CICS user identifier must be registered in the SNT.

 Other CICS tables (viz. FCT, JCT, DCT) must be prepared


for the application program, if required.

24
STEPS IN APPLICATION DEVELOPMENT
COBOL Program with CICS
CICS Statements Preprocessor

COBOL Source
Code

Object Module COBOL


Compiler

Load
Linker
Module

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

26
USER ENTERS TRANS-ID (AAAA)

PCT
Transaction Program
CICS locates trans-id
AAAA AAAPGM1 AAAA in program
BBBB BBBPGM1 control table
CCCC CCCPGM2

CICS Address
PPT Space
Program Location
CICS locates program
AAAPGM1 in the
AAAPGM1 On Disk processing program
BBBPGM1 In Storage BBBPGM1
table
CCCPGM2 On Disk

CICS locates load module


Library Load Module AAAPGM1 on disk, loads
ORDPROG AAAPGM1 it into memory, and starts
the task AAAPGM1
ORGPROG BBBPGM1
DDMPROG CCCPGM2

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

28
CICS SERVICES

 Terminal Control

 Program Control

 File Control

 Basic Mapping Support ( B M S )

 Transient Data & Temporary Storage Control

 Interval & Task Control

 Storage Control

29
TERMINAL CONTROL SERVICE

SESSION # 2

30
INTRODUCTION

The CICS Terminal Control Program (TCP) provides


communication services between application programs and
terminals, using the information defined in the Terminal
Control Table. Usually, unformatted screens are used for
the Terminal Control Operations.

31
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

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

Eg: EXEC CICS


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

33
RECEIVE COMMAND SYNTAX

EXEC CICS
RECEIVE INTO (Variable)
LENGTH (Literal / Variable)
END-EXEC.

Eg: EXEC CICS


RECIEVE INTO (SCR-VAR)
LENGTH (20)
END-EXEC.
EXEC CICS
RECIEVE INTO (SCR-VAR)
LENGTH (WS-MESSAGE-LEN)
END-EXEC.
(SCR-VAR is WS variable into which value is to be received)
34
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...

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

36
ISSUE PRINT COMMAND

The ISSUE PRINT Command is used to make a hard copy of


Screen on the local printer.

Syntax:

EXEC CICS
ISSUE PRINT
END-EXEC.

37
ISSUE COPY COMMAND

The ISSUE COPY Command is used to copy a screen image


of the terminal into another terminal.

Syntax:

EXEC CICS
ISSUE COPY
TERMID (Terminal Name)
END-EXEC.

38
HANDLE AID COMMAND SYNTAX

EXEC CICS
HANDLE AID
Attention Key1 (Routine1)
Attention Key2 (Routine2)
Attention Key3 (Routine3)
END-EXEC.

Eg: EXEC CICS


HANDLE AID
PF1 (PF1-Routine)
PF2 (PF2-Routine)
END-EXEC.
( PFx-Routines are to be coded by Application Programmer )

39
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 …

40
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

41
PROGRAM CONTROL

SESSION # 3

42
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

43
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

44
INTERPROGRAM COMMUNICATION
Passing data between programs

 Sending program specifies the data area, which is to pass


data to the calling program in the
WORKING-STORAGE SECTION.

 Receiving program receives it into the data area defined


in the LINKAGE SECTION.

 Normally the LS area is DFHCOMMAREA.

 The length of the COMMAREA passed by the program


is available in the system variable EIBCALEN in
DFHEIBLK copybook.

45
PASSING DATA BETWEEN PROGRAMS

TRANSID: TRN1 TRANSID: TRN2


Program 1 COMMAREA
Working-storage Section Program 2
COM Linkage Section.
DFHCOMMAREA
Procedure Division.
....

RETURN
TRANSID(TRN2)
COMMAREA(COM) » EIBCALEN contains the Size of COM

46
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

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

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

49
LOAD command Syntax

Important Parameters :

PROGRAM - Program to be loaded into CICS address space


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

50
LOAD command

Example:
EXEC CICS LOAD
PROGRAM (‘lodprg’)
SET (ptrvar)
LENGTH (lenvar)
END-EXEC .

Exceptions:
PGMIDERR – Program not found
LENGERR – Load module > 32 K
NOAUTH – Security check error

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

52
RELEASE command Syntax

EXEC CICS RELEASE


PROGRAM (Program Name)
END-EXEC.

Parameters :

PROGRAM - Name of the program to be released

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

54
LINK command syntax

EXEC CICS LINK


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

55
LINK command Syntax

Important Parameters :

PROGRAM - Program to be linked.


COMMAREA - Data area to be passed to the called
program
LENGTH - S9(4) COMP. Length of data area to be
passed
INPUTMSG - Data area to be passed to the called
program as an input
INPUTMSGLEN - S9(4) COMP. Length of data area to be
passed as input

56
LINK flow of control

CICS SYSTEM

First Program: Second Program:


LINK RETURN

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

58
XCTL command Syntax

EXEC CICS XCTL


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

59
XCTL command Syntax

Important Parameters :

PROGRAM - Program to be XCTLed.


COMMAREA - Data area to be passed to the called
program
LENGTH - S9(4) COMP. Length of data area to be
passed
INPUTMSG - Data area to be passed to the called
program as an input
INPUTMSGLEN - S9(4) COMP. Length of data area to be
passed as input

60
XCTL flow of control

CICS SYSTEM

First Program: Second Program:


XCTL RETURN

61
DIFFERENCE BETWEEN LINK & XCTL

Program 1.
LINK CICS
Program 2.

Program 1.
XCTL CICS
Program 2.

62
RETURN command syntax

EXEC CICS RETURN


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

63
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

64
Modes of Application Programming

 CONVERSATIONAL

 NON CONVERSATIONAL

 PSEUDO CONVERSATIONAL

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

66
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

67
RESTRICTIONS in COBOL when using CICS

Data related entries cannot be used in


ENVIRONMENT DIVISION &
DATA DIVISION.

Following statements in COBOL cannot be used in CICS.

IDENTIFICATION DIVISION
No restrictions

ENVIRONMENT DIVISION
• SELECT Statement
Continued...

68
RESTRICTIONS in COBOL when using CICS

DATA DIVISION
• FD Entry
• REPORT SECTION

PROCEDURE DIVISION
• SORT
• RELEASE
• RETURN
Debugging Statements
• EXHIBIT
• TRACE
Continued...

69
RESTRICTIONS in COBOL when using CICS

PROCEDURE DIVISION
I/O Statements
• ACCEPT
• DISPLAY

File Handling commands


• OPEN
• CLOSE
• READ
• WRITE
• REWRITE
• DELETE
Continued...

70
RESTRICTIONS in COBOL when using CICS

PROCEDURE DIVISION
Program Termination commands
• STOP RUN
• EXIT PROGRAM
• GOBACK

String Handling statements


• STRING
• UNSTRING
• INSPECT
• EXAMINE
Continued...

71
RESTRICTIONS in COBOL when using CICS

PROCEDURE DIVISION
Calendar commands
• CURRENT-DATE
• DATE
• DAY

72
FILE CONTROL

SESSION # 4

73
INTRODUCTION

The CICS File Control Program (FCP) provides


application programs with services to Read, Update, Add, and
Delete records in a file (dataset).
In addition it makes application programs independent of
the structure of the database, while it manages exclusive control
over the records, in order to maintain the data integrity during
record updates.
CICS supports the following VSAM Datasets :
LDS : Linear Data Set
ESDS : Entry Sequenced Data Set
KSDS : Key Sequenced Data Set
RRDS : Relative Record Data Set
Continued...
74
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 SECTION
SELECT statement
FD entry
OPEN/CLOSE
JCL

Continued...

75
FILE CONTROL SERVICE(contd)

Data set names have to be registered in File Control


Table (FCT) by System Programmer to specify
characteristics of file.

Files are automatically opened and closed by Master


Terminal Transaction ( CEMT).

During Update, a program gets exclusive control over the


record being updated

Continued...

76
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

77
READ COMMAND SYNTAX

EXEC CICS READ


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

78
EXAMPLE

Suppose that file FILEAAA has records in the


following order :

BO001
BC001
DC001
DC002
NY000
NY001
NY002
PH001
PH002

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

80
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

81
REWRITE COMMAND

A combination of the READ command with the UPDATE


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

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

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

84
DELETE COMMAND SYNTAX

// To delete a record after it has been Read


EXEC CICS DELETE
DATASET (filename)
END-EXEC.

// To delete a record/group satisfying certain condition


EXEC CICS DELETE
DATASET (filename)
RIDFLD(data-area)
[GENERIC]
[RBA/RRN]
END-EXEC.

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

86
BROWSE COMMANDS

CICS provides a special set of browse commands

STARTBR

READNEXT

READPREV

RESETBR

ENDBR
Continued...

87
ORDER OF BROWSE OPERATION

EVENTS COMMANDS
1. Start.
2. Establish starting position STARTBR
3. Retrieve a record. READNEXT
OR READPREV
4. If processing of the record is required,
then process and go to step 3.
5. If more records are required,
then go to step 3.
6. If it is required to establish another position,
then restablish the new position and go to step 3. RESETBR
7. Terminate the BROWSE operation. ENDBR
8. End.

88
STARTBR COMMAND SYNTAX

To initiate and establish position for BROWSE.

EXEC CICS STARTBR


DATASET (filename)
RIDFLD (key-area)
[GENERIC]
[GTEQ / EQUAL]
[RRN / RBA ]
END-EXEC.
Exceptions:
INVREQ – Read operation not permitted
NOTFND – Record not found

89
READNEXT COMMAND SYNTAX

Retrieving records sequentially in ascending sequence.

EXEC CICS READNEXT


INTO (rec-area)
DATASET (filename)
RIDFLD (key-area)
LENGTH (length)
RBA/RRN
END-EXEC.

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

91
RESETBR COMMAND SYNTAX

Altering the starting position of current Browse operation

EXEC CICS RESETBR


DATASET (filename)
RIDFLD (key-area)
[REQID (data-value)]
[GTEQ / EQUAL]
END-EXEC.

92
ENDBR COMMAND SYNTAX

Ending the current Browse operation:

EXEC CICS ENDBR


DATASET (filename)
[REQID (data-value)]
END-EXEC

93
BASIC MAPPING SUPPORT

SESSION # 5

94
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

95
IBM TERMINALS

The CICS Terminal Control


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

96
IBM TERMINALS

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

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

98
NMDS for an IBM 3270 terminal
Output Data Stream
C Info. Addr SF Attr Byte Text Data

Field 1
Input Data Stream
C. Info Addr Attr Byte Text Data

Field1
C Info. Field 1 Field 2.....

S F - Start of field Character

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

10
0
BASIC MAPPING SUPPORT

 BMS is an interface between the application program


and the terminal

 BMS maps device independent data into device


dependant data to provide a formatted screen

 BMS identifies the location and characteristics of data


fields as well as the characteristics of the terminal with
which the map will be used
FUNCTIONS OF BMS

 To remove device dependent codes and constant


information from an application and to place them in maps
thereby simplifying programming job.

 Keeps Code largely independent of


 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
10
2
MAP & MAPSET

 MAP

Representation of one formatted screen

 MAPSET

Collection of one or more map(s)

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

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

10
5
GENERATION OF MAPS
BMS Macro

ASSEMBLE

Link - Edit

Symbolic Map Physical Map

COPY LIB LOAD LIB

10
6
USING MAPS IN A PROGRAM
Source
Code CICS Translator
Copy Library

Symbolic
COBOL Compiler
map

Load Module
Link Edit &
Physical map

Load Library
10
7
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

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

10
9
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

11
0
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...
11
1
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
11
2
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...
11
3
DFHMDI Syntax

Mapname DFHMDI SIZE = (LINE,COLUMN),


JUSTIFY = | LEFT / RIGHT |,
CTRL = (ctrl1,ctrl2,…)

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

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

11
5
DFHMDF Syntax

Fieldname DFHMDF POS=(LINE,COLUMN),


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

11
6
DFHMDF ATTRIBUTES

1. ASKIP / PROT / UNPROT


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

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

11
8
Sample BMS Coding...
1 10 1617 72
MAPSETA 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

11
9
SENDING MESSAGE TO SCREEN

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

SYMBOLIC PHYSICAL
MAP MAP

OUTPUT DATA
STREAM

12
0
SENDING MESSAGE (MAPONLY)

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

OUTPUT DATA
STREAM
12
1
SENDING MESSAGE (DATAONLY)

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

OUTPUT DATA
STREAM
12
2
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.
12
3
COPY BOOKS TO BE INCLUDED FOR USING
BMS
.........

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

PROCEDURE DIVISION.
....

12
4
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.
12
5
EXCEPTION HANDLING

SESSION # 6

12
6
EXCEPTION HANDLING IN CICS

 RESP

 HANDLE CONDITION

 IGNORE CONDITION

 HANDLE AID

 HANDLE ABEND

12
7
RESP OPTION

 The RESP option can be specified in any CICS command.


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

12
8
The following is the procedure to use the RESP option in a CICS
command :

1. Define a fullword binary field (S9(8) COMP) in the Working


Storage Section as the response field.

2. Place the RESP option with the response field in a command.

3. After command execution, check the response code in the


response field with DFHRESP(xxxx), where xxxx is :
• NORMAL for normal completion.
• Any exceptional comdition.

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

13
0
During the execution of this program, the following will occur :

• At the completion of the SEND command, the WS-RETCODE


field will have the response code of the command execution result.

• If the SEND command completes normally, control will be


passed to NORMAL-PARA.

• If a LENGERR is encountered , control will be passed to


LENGERR-PARA.

• If any other exceptional condition is encountered, control will be


passed to GENERAL-ERR-PARA.

13
1
HANDLE CONDITION COMMAND

EXEC CICS HANDLE CONDITION


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

13
2
EXAMPLE

EXEC CICS HANDLE CONDITION


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

13
3
IGNORE CONDITION COMMAND

The IGNORE CONDITION command causes no action to be


taken if the specified condition occurs in the program. The control
will be passed on to the instruction following the command which
encountered the exceptional condition.

The request by the IGNORE CONDITION command is valid


until the subsequent HANDLE CONDITION for the same
condition.

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

13
5
EXAMPLE

EXEC CICS IGNORE CONDITION


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

• At the execution of the RECEIVE command, if LENGERR


exception occurs, the condition will be ignored, and the control
will be passed to the statement after the RECEIVE command.

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

13
7
EXAMPLE

EXEC CICS HANDLE AID


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

13
8
HANDLE ABEND COMMAND

The HANDLE ABEND command is used to intercept an


abnormal termination (ABEND) in a program, and to activate,
cancel or reactivate an exit for the ABEND processing.

The HANDLE CONDITION command intercepts the abnormal


conditions of the CICS command execution whereas HANDLE
ABEND intercepts abnormal termination.

13
9
Syntax :

EXEC CICS HANDLE ABEND


[PROGRAM(name) |
LABEL(label) |
CANCEL |
RESET ]
END-EXEC.

PROGRAM or LABEL is used to pass control to a program or a


paragraph , respectively, for ABEND processing.
CANCEL is used to cancel the previously established HANDLE
ABEND request.
RESET is used to reactivate the previously cancelled HANDLE
ABEND request.
14
0
EXAMPLE
WORKING-STORAGE SECTION.
77 MSG-LEN PIC S9(4) COMP.
01 MSG-DATA.
05 MSG-DATA1 PIC X(15).
05 MSG-DATA2 PIC X(50).
:
PROCEDURE DIVISION.
:
EXEC CICS HANDLE ABEND
LABEL(ABEND-ROUTINE)
END-EXEC.
:
ABEND-ROUTINE.
MOVE ‘ABEND OCCURED.’ TO MSG-DATA1.
MOVE ‘TASK CANCELLED WITH ABCODE 9999.’ TO MSG-DATA2.
MOVE 65 TO MSG-LEN.
EXEC CICS SEND
FROM (MSG-DATA)
LENGTH(MSG-LEN)
NOHANDLE
END-EXEC.

14
1
EXEC CICS HANDLE ABEND
CANCEL
END-EXEC.
EXEC CICS ABEND
ABCODE(‘9999’)
END-EXEC.

During the execution of the program, the following activities will


occur :
• If an ABEND occurs, it will be intercepted by the HANDLE
ABEND command, and control will be passed to 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’.

14
2
TRANSIENT DATA QUEUES

SESSION # 7

14
3
TRANSIENT DATA QUEUE

OBJECTIVES

 To get an introduction on Transient Data Queue

 To learn to use TD Queues

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

14
5
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)

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

14
8
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 transaction
Continued ...
14
9
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 ...
15
0
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 ...
15
1
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.

15
2
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

15
3
TRANSIENT DATA CONTROL

 WRITEQ TD Syntax

EXEC CICS WRITEQ TD


QUEUE ( <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

15
4
TRANSIENT DATA CONTROL

 READQ TD Syntax

EXEC CICS READQ TD


QUEUE ( <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’

15
5
TRANSIENT DATA CONTROL

 DELETEQ TD Syntax

EXEC CICS DELETEQ TD


QUEUE ( <name> )
END-EXEC.

 EXCEPTIONS

 QIDERR - DCT entry not found for the ‘Q’

15
6
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)

15
7
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 ...
15
8
AUTOMATIC TASK INITIATION (ATI)

 Applications...

 Message Switching
Messages can be accumulated in a TDQ
(Intra Partition) and at certain level, say 1000,
another transaction may be started to route the
messages to a different destination

 Report Print
Similarly records can be accumulated,
and at certain trigger level another transaction can
be started to print the records

15
9
TEMPORARY STORAGE QUEUES

SESSION # 8

16
0
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 ...
16
1
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 ...
16
2
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... 16
3
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.

16
4
EXAMPLE
WORKING-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...............

16
5
EXAMPLE ........(Contd.)

WRITE A QUEUE.

EXEC CICS WRITEQ


QUEUE(TSQ-QID)
FROM(TSQ-DATA)
LENGTH(TSQ-LEN)
ITEM(TSQ-ITEM)
MAIN
END-EXEC.

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

16
6
INTERVAL & TASK CONTROL

SESSION # 9

16
7
INTERVAL CONTROL & TASK CONTROL

OBJECTIVES

 To know more on Interval Control and Time


related functions

 To know more on Task management

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

16
9
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

17
0
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
17
1
INTERVAL CONTROL

 Scheduled Transaction Initiation (STI)


Scheduled Transaction Initiation (STI) is an
important application of the START command, by
which CICS transactions can be initiated automatically
at scheduled time or intervals.

EXEC CICS START


TRANID(‘ABCD’)
TERMID(‘TTTT’)
TIME( 090000 )
END-EXEC.
// ABCD will be initiated at 9.00 AM

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

17
3
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

17
4
INTERCOMMUNICATION

SESSION # 10

17
5
INTER COMMUNICATION

MULTI REGION OPERATION &


INTER SYSTEM COMMUNICATION

OBJECTIVES

 To get an introduction on MRO and ISC

17
6
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 )

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

17
8
Accounting MRO Example
database Multiple Departmental System

Processor 1
Operating System
Accounting
System CICS 1

Sales Inventory
System CICS 3 System CICS 2

Sales Inventory
database database
17
9
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 ...
18
0
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 ...
18
1
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)

18
2
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 )
18
3
Inter System Communication (ISC)

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

18
4
Accounting
Typical example ISC
database Distributed Corporate System
Operating System
CITY 1
Accounting
System CICS
Processor 1
Operating System Operating System
Sales Inventory
System CICS SNA System CICS
Processor 2 Processor 3
CITY 2 CITY 3
Sales Inventory
database database
18
5
SESSION # 11

18
6
DEBUGGING
CICS EXECUTION DIAGNOSTIC FACILITY
( CEDF )

OBJECTIVES

 To know more about diagnostic facilities in CICS

 To learn to use CEDF

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

18
8
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

18
9
EFFICIENT CICS PROGRAMMING

SESSION # 12

19
0
EFFICIENT CICS PROGRAMMING

OBJECTIVES

 To get an introduction to develope efficient


CICS applications

19
1
EFFICIENT CICS PROGRAMMING

 Considerations to be made while designing an


ON - LINE application

 Processing Requirements

 Screen requirements

 On-Line printing requirements

Continued ...
19
2
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

19
3
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 ...
19
4
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 ...
19
5
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 -
19
6

You might also like