100% found this document useful (1 vote)
293 views151 pages

Complete Tutorial On CICS.: Presents

Uploaded by

Kalyan Dasari
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
293 views151 pages

Complete Tutorial On CICS.: Presents

Uploaded by

Kalyan Dasari
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPS, PDF, TXT or read online on Scribd
You are on page 1/ 151

IBMMAINFRAMES.

com

Presents

Complete Tutorial on CICS.


PART – I

INTRODUCTION TO CICS
 

Copyright: IBMMAINFRAMES.c 2
om
OBJECTIVES
     Batch & Online systems
 
     Why CICS?
 
     CICS System components
 
     CICS control program & tables
 
     CICS startup and shutdown
Copyright: IBMMAINFRAMES.c 3
om
BATCH & ONLINE SYSTEM
Batch System Online System

Transaction file Online


System

Terminals
Batch System
DATABASE

REPORTS
MASTER FILE
 ONLINE SYSTEM
 DEFINITION :
 ONLINE processing allows a user to interact with a computer and access its
resources via a terminal
 Example : Railway Reservation system

Copyright: IBMMAINFRAMES.c 4
om
BATCH & ONLINE SYSTEM
BATCH ONLINE
Input Data from card tape, disk Data from terminal
Batched, sequential, random, concurrent
scheduled
Start of Operator (or operating Once CICS is initialized,
A job system) initiates the job. Other entering transaction id
jobs in the same region must triggers the transaction
wait. to start.
Processing Single task single thread. Multi task multi thread.
Mode Priority in job scheduling Priority processing.

End of job Each job Each transaction. Once


CICS is terminated, no
transactions can be
entered.
Copyright: IBMMAINFRAMES.c 5
om
BATCH & ONLINE SYSTEM
Contd….
BATCH ONLINE
Output printed reports, output files. Message terminals
User must wait for batch jobs updated files, system
to produce reports (day, week,  Instant feed back
month)

Resource Less More


Usage

Example Monthly sales report Airline reservation


of system
application

Copyright: IBMMAINFRAMES.c 6
om
WHAT IS CICS?

    Customer Information Control System (CICS) was


developed in 1960 by IBM
 
 ONLINE CONTROL SYSTEM
 
  General purpose data communication control
system
 
Provides services to handle all the special
 requirements for online processing

Copyright: IBMMAINFRAMES.c 7
om
BATCH & ONLINE SYSTEM
 Application Program

Operating System (MVS/XA)

Other
Database Database Telecommunication
Access Method Access method Systems
Method (VSAM/ (VTAM,TCAM,
(DL/I, DB@) BDAM) BTAM)
Data
Storage

Terminals
CICS / MVS

 Note : Role of CICS is to interface between application programs


and the DB/DC control system.

Copyright: IBMMAINFRAMES.c 8
om
CICS SERVICES & THE
OPERATING SYSTEM

          Requests for file I/P, O/P

       Requests for database I/P, O/P

     Requests for terminal I/P, O/P

Copyright: IBMMAINFRAMES.c 9
om
CICS / VS CONTROL

TASK CONTROL
T
E
F
R
I
M TERMINAL
CICS TABLES
FILE
CONTROL CONTROL L
I
E
N
S
A
L PROGRAM CONTROL

PROGRAM LIBRARY

Copyright: IBMMAINFRAMES.c 10
om
CICS CONTROL PROGRAM
AND TABLES
    CICS CONTROL PROGRAM
(IBM SUPPLIED)
   FCP (FILE CONTROL PROGRAM)
 JCP (JOURNAL CONTROL PROGRAM)
 KCP (TASK CONTROL PROGRAM)
 PCP (PROGRAM CONTROL PROGRAM)
 SCP (STORAGE CONTROL PROGRAM)
 TCP (TERMINAL CONTROL PROGRAM)
 TDP (TRANSIENT DATA PROGRAM)
 TSP (TEMPORARY STORAGE PROGRAM)
OTHERS
Copyright: IBMMAINFRAMES.c 11
om
CICS CONTROL PROGRAM
AND TABLES - Contd…
   CICS CONTROL TABLES
       (USER SPECIFIED)
   FCT (FILE CONTROL TABLE)
   JCT (JOURNAL CONTROL TABLE)
   PCT (PROGRAM CONTROL TABLE)
   PPT (PROCESSING PROGRAM TABLE)
   TCT (TERMINAL CONTROL TABLE)
   DCT (DESTINATION CONTROL TABLE)
   TST (TEMPORARY STORAGE TABLE)
Copyright: IBMMAINFRAMES.c 12
om
CICS START UP
        CICS is submitted as a batch job.

     CICS System Initialization program (SIP) is the

main job step

       SIP loads System Initialization Table (SIT)


 
     SIP further loads all control programs and tables
 
- Perform initial housekeeping tasks
  Copyright: IBMMAINFRAMES.c 13
om
CICS SHUTDOWN

     Master terminal transaction is entered


with shutdown option

     CICS job produces various logs, statistics,

dumps and other reports and ends


 
     No transaction can be executed after that

  Copyright: IBMMAINFRAMES.c
om
14
ROLE OF CICS
     MULTI TASKING
  - More than one task can be executed concurrently.
 
     MULTI THREADING
  - Tasks share the same program under the multi tasking
environment.
 
     RE-ENTRANT PROGRAM
  - Program when does not modify itself in any way during
execution.
 
     QUASI RE-ENTRANT 
- Is a reentrant program under the CICS environment.

Copyright: IBMMAINFRAMES.c 15
om
Chapter - 2

MAPS AND DISPLAYS

Copyright: IBMMAINFRAMES.c 16
om
INTRODUCTION TO BMS

  To make the application program device


independent and format independent CICS
provides Basic Mapping Support (BMS)

     BMS is a standard facility, to deal with the


formatted screen operations
 
     Screen defined through BMS is called a
"MAP"

Copyright: IBMMAINFRAMES.c 17
om
PHYSICAL AND SYMBOLIC MAP
     Physical Map
 
- Primarily used by CICS
 
- Ensures device independence in the application program
 
- For input operations, it defines the maximal data length and starting position
of each field to be read and allows BMS to interpret an input data stream
 
- For output operations it defines starting position, length, field characteristics
 
- (Attribute Bytes) and default data for each field, and allows BMS to construct
an output data stream.

Copyright: IBMMAINFRAMES.c 18
om
PHYSICAL MAP GENERATION
BMS MACRO
ASSEMBLY LINK EDIT
CODING

LOAD TO BE USED
LOAD LIB
MODULE BY CICS

     Physical map is a program in the form of Load module

     Physical map is coded using BMS macros


 
     BMS macros are assembled separately and link edited into
the CICS load library

Copyright: IBMMAINFRAMES.c 19
om
SYMBOLIC MAP
     Ensures the device and format independence
to the application programs
 
     A layout change in the formatted screen can
be done independent of the application program
coding as long as field name and length remain the
same
 
  Symbolic map is included in the program by issuing
a COBOL COPY statement
  Copyright: IBMMAINFRAMES.c 20
om
USING MAPS IN A PROGRAM
PROGRAM
SOURCE

TRANSLATOR

SYMBOLIC
COMPILER
MAP

LINK EDIT

Program
load module
Physical
map

Copyright: IBMMAINFRAMES.c 21
om
SYMBOLIC MAP GENERATION
BMS
SYMBOLIC MAP
ASSEMBLY
DEFINITION
MACRO CODING

COPIED INTO CICS APPLICATION


COPY LIB
PROGRAM USING COPY STATEMENT

    Symbolic map is a copy library member


 
     Included in application program for defining the screen fields.
 
   BMS Macros are coded, assembled and catalogued into a COPY
library

Copyright: IBMMAINFRAMES.c 22
om
SYMBOLIC MAP SUFFIXES
    “L”
Halfward binary
  Contain the length of data entered by the terminal
operator
  “F”
  One byte flag field
  “I”
  Contains the data entered by the operator  
“A”
  One byte field that contains Attribute byte
    “O”
  Contains data to be sent to terminal

Copyright: IBMMAINFRAMES.c 23
om
SYMBOLIC MAP FORMAT -
Contd…
 A 12 byte TIOA prefix is automatically provided.

  When performing input functions fields suffixed


with “L”, “F”, and “I” are meaningful.

  When performing OUTPUT functions, the fields


 suffixed with “A” and “O” are meaningful.Contains
 the data to be sent to the terminal.

Copyright: IBMMAINFRAMES.c 24
om
OUTPUT MAPPING
“MAP ONLY”
  EXEC CICS SEND
MAP (“mapname1’)
MAPSET (‘mapset1’)
MAPONLY
END-EXEC
  
“DATA ONLY”
EXEC CICS SEND
MAP (‘mapname1’)
MAPSET (‘mapset1’)
DATA ONLY.
END-EXEC.
Copyright: IBMMAINFRAMES.c 25
om
OUTPUT MAPPING
 
     MAP ONLY option.
 
- Use the physical map only.
- Field headings, attribute bytes, and the location of
where all information is to be placed is sent.
 
     DATA ONLY
- Use the symbolic map only
- only the data in the symbolic map is sent to the
screen.

Copyright: IBMMAINFRAMES.c 26
om
OUTPUT MAPPING -
Contd…
    Neither “ MAPONLY NOR DATAONLY
  EXEC CICS SEND
MAP (‘map-name1’)
  MAPSET (‘mapset1’)
END-EXEC
  - The physical map and the data from symbolic
map is sent to the terminal.

Copyright: IBMMAINFRAMES.c 27
om
OUTPUT MAPPING -
Contd…
     Other options of SEND command.
 ERASE: Current screen is erased before the map
specified appears on the screen
    ERASEAUP: erase all the unprotected fields.
     FREEKB: to free the keyboard
   ALARM: to make an alarms sound.
   FRSET: to reset MDT to zero
  CURSOR: to place the cursor in a specified field.
 

Copyright: IBMMAINFRAMES.c 28
om
CURSOR POSITIONING
 Static positioning
If IC option is specified in the ATTRB field of DFHMDF

macro the cursor will be placed at this field.


 Dynamic / symbolic positioning.
Place (-1) into the field length field (“L” suffix).
Cursor will be placed in the field.
 Dynamic / Relative positioning.
Cursor (data-value) option is used.
Data-Value will have the value at which the cursor
has to be positioned.

Copyright: IBMMAINFRAMES.c 29
om
CURSOR POSITIONING
Contd…
  E.g.. EXEC CICS SEND
MAP (…..)
MAPSET (…..)
CURSOR (100)
ERASE
END-EXEC.
 MAPFAIL condition will caused in RECEIVE MAP command.
  - If the data to be mapped has a length of zero.
  - If the operator presses any key (clear, PA, PF, ENTER,
Keys) without entering any data.

Copyright: IBMMAINFRAMES.c 30
om
  ACCESSING AND
DISPLAYING MAP
FIELDS

Copyright: IBMMAINFRAMES.c 31
om
MAP STORAGE AREAS
    Placing maps in the Program
  Any of the three plans for redefinition of maps may be
used with either of the 2 alternatives for placing maps
in your program.
       WORKING - STORAGE SECTION
  Copying a symbolic description map structure here
makes the area automatically available whenever the
program is invoked.
       LINKAGE SECTION
  Copying a symbolic description map structure here
does NOT mean the storage will be available. Some
methods for providing storage are passing a
COMMAREA, acquiring temporary storage with the
SET option, or using a GET MAIN command.

Copyright: IBMMAINFRAMES.c 32
om
SEND / RECEIVE
    Sending from the Symbolic description map
  SEND MAP (`MAP1')
MAPSET(`SET1')
MOVE `MAP1' TO MAPVAR
MOVE `SET1' TO SETVAR
SEND MAP (MAPVAR)
MAPSET(SETVAR)
FROM (MAP1O) 
SEND MAP Coding Alternatives
  You can code the SEND MAP command to locate the
symbolic description map in several ways:
      Using constants in the name field for MAP and
MAPSET(FROM is not required)

Copyright: IBMMAINFRAMES.c 33
om
SYMBOLIC MAPNAME IS
SEND / RECEIVE - Contd…

     Using variables in the name field for MAP and MAPSET
(This makes FROM a required parameter)
 
     Using only the MAP parameter. In this case the name in
the MAP option must be the MAPSET name.
 

Copyright: IBMMAINFRAMES.c 34
om
 
SEND / RECEIVE - Contd…
RECEIVING into the symbolic description map
 
RECEIVE MAP(`MAP1')
MAPSET(`SET1') ... MAP1 I
 
Move `MAP1' to MAPVAR
Move `SET1' to SETVAR ..... MAP1 I
RECEIVE MAP (MAPVAR)
MAPSET(SETVAR)
INTO (MAP1 I)
 
Receive MAP (`SET1') ... SET1 I
 
RECEIVE MAP coding alternatives
 
You can code the RECEIVE MAP command to locate the symbolic description map in several ways:

Copyright: IBMMAINFRAMES.c 35
om
SYMBOLIC MAPNAME IS
SEND / RECEIVE - Contd…
     Using constants in the name field for map and mapset
(INTO/SET is not required) This is the most commonly
used format.
 
   Using variables in the name field for MAP and MAPSET.
This makes INTO (database) or SET a required
parameter.
 
     Using only the MAP parameter. In this case the name in
the MAP option must be the MAPSET name.

Copyright: IBMMAINFRAMES.c 36
om
SEND / RECEIVE - Contd…
  Linkage Section.
01 DFHCOMMAREA
01 LST
02 PTR-2-LIST PIC S 9(8) COMP.
02 PTR-2-BMS PIC S 9(8) COMP.
RECEIVE MAP (`MAP1') MAPSET
(`SET1')
SET (PTR-2-BMS) ..... MAP1 I
 
     Using the SET option requests CICS to get the storage and return a
pointer to it. The symbolic description map must be in the LINKAGE
SECTION.

Copyright: IBMMAINFRAMES.c 37
om
OUTBOUND FUNCTIONS
  SEND MAP (`MAPA') MAPSET (`SETA')
[ERASE/ ERASEAUP] [FREEKB]
[ALARM] [FRSET] [PRINT]
 
ERASE-Erase Buffer, place cursor in upper left corner then write
  or
  ERASEAUP-Erase all the unprotected fields before the Write
 
FREEKB-Unlock Keyboard after the write
 
ALARM-Active alarm with the write
FRSET-Set all MDT currently on to off
PRINT-Start the 3270 print operation.

Copyright: IBMMAINFRAMES.c 38
om
OUTBOUND FUNCTIONS
  Control Functions:
  Typically the first type of command in the program is a SEND MAP. Certain
control functions may be included in that command.
 
   ERASEAUP will clear out each field whose attribute is unprotected. It will
NOT alter any attribute settings.
 
   If you do not free the keyboard using FREEKB, the operator will have to
press the RESET key before entering data.
 
  If you code FRSET, all attribute bytes currently having Modified Data Tags
(MDT) set on will be set off. Selective resetting of the MDT's must be done
another way.
 
   When sending data to a 3270 screen the actual printing from the buffer will
occur when the PRINT function is requested.
 

Copyright: IBMMAINFRAMES.c 39
om
OUTBOUND FUNCTIONS -
Contd…
  Attributes :
  The `A' suffixed field is an attribute field which controls the
following :
  - PROTECTED/UNPROTECTED
- ASKIP
- NUM
- MDT
- Non Display (dark)DISPLAY (normal/bright)
     If the color or highlighting of a field has to be changed,
additional symbolic fields are needed which are called the
EXTENDED ATTRIBUTES.

Copyright: IBMMAINFRAMES.c 40
om
EXTENDED ATTRIBUTES
    DSATTS (for symbolic map) and MAPATTS (for
physical map) support the extended attribute
characteristics
 
 The MAPATTS allows you to set up the physical
map with any of the characteristic(s) coded.
 
The DSATTS will create appropriate suffixed labels for the
attribute characteristic(s) coded.
 
To illustrate the result of coding these parameters,
the generated symbolic map follows.

Copyright: IBMMAINFRAMES.c 41
om
OUTBOUND FUNCTIONS
    The generated symbolic map:
  - COPY MAPSETA, PART I
WORKING-STORAGE SECTION.
COPY MAPSETTA.
01 MAP1I.
02 FILLER PIC x(12).
02 NAMEL COMP PIC 39(4).
02 NAME F PICTURE x.
02 FILLER REDEFINES NAMEF.
02 NAMEA PICTURE x.
02 FILLER PIC X(5)
02 NAMEI PIC X(20).

Copyright: IBMMAINFRAMES.c 42
om
OUTBOUND FUNCTIONS -
Contd…
    COPY MAPSETA, PART2
01 MAP10 REDEFINES MAP1I.
02 FILLER PIC x(12).
02 FILLER PICTURE x(3).
02 NAMEC PICTURE x.
02 NAMEP PICTURE x.
02 NAMEH PICTURE x.
02 NAMEU PICTURE x.
02 NAMET PICTURE x.
02 NAMEO PIC x(20).

Copyright: IBMMAINFRAMES.c 43
om
INBOUND FUNCTIONS - AID
/ CURSOR CONTROL
Attention Identifier (ID) and Cursor:
 
  On a RECEIVE, CICS updates the EIB with
the following information :
  -The screen cursor position relative to
zero is placed is EIBCPOSN.
  -The name of the input key the terminal
operator pressed is placed in the field
EIBAID.

Copyright: IBMMAINFRAMES.c 44
om
EIBAID/CURSOR
  WORKING-STORAGE SECTION.
COPY DFHAID.
  ......
PROCEDURE DIVISION.
IF EIBAID = DFHPF12 THEN
  ......
IF EIBAID = DFHENTER THEN
  ......
IF EIBCPOSN LESS THAN 80 THEN
  ......
 When you first enter your program as a result of a transaction id, you can test
EIBAID and/or EIBCPOSN. This may be done prior to issuing a RECEIVE
command, if so chosen.
 

Copyright: IBMMAINFRAMES.c 45
om
AID/CURSOR - SAMPLE
CODING (CONTROL)
   If the operator uses any PA key or presses the CLEAR
key, no data is transmitted
 
EIBAID is useful when function keys are defined for
the user. for eg.
  PF12 may be the exit function
  PF3 may be an update function etc.
  Thus testing for the type of AID will alter the logic flow.
 EIBCPOSN can be used to determine where the cursor
was positioned on the screen. This information is
especially useful with screens containing an action bar.

Copyright: IBMMAINFRAMES.c 46
om
CURSLOC
  Sample Map
 
MAPSETA DFHMSD TYPE=&SYSPARM,MODE=INOUT,
TERM=ALL,LANG=COBOL, TIOAPFX=YES,
STORAGE=AUTO
 MAP1 DFHMDI SIZE=(24,80),LINE=1,COLUMN=1,
CURSLOC=YES
  DFHMDF POS(2,1), LENGTH=4, INITIAL=`NAME',
ATTRIB=ASKIP
 NAME DFHMDF POS(2,6),LENGTH=20,
ATTRB=(UNPROT, IC)
  DFHMDF POS(2,27), LENGTH=1,
ATTRB=PROT
 

Copyright: IBMMAINFRAMES.c 47
om
CURSLOC - Contd…

  CURSLOC= YES allows you to determine after a RECEIVE


MAP command, which map field had the cursor in it.
CURSLOC=NO is the default.
CURSLOC=(NO/YES) may be coded on the DFHMSD or the
DFHMDI macro. If coded on the DFHMSD macro, it will provide a
default for all the maps in that mapset.
  When CURSLOC=YES, BMS will set the `F' suffix field to X'02'
indicating that field contained the cursor. If the cursor is in a field
for which there is no symbolic label (i.e. a DFHMDF with no label
the program will not be notified.
  Note :
  The `F' suffix field continues.

Copyright: IBMMAINFRAMES.c 48
om
CURSLOC - Contd…
To be used to indicate the operator pressed the
erase to end of fixed (EOF) key by being set to
X'80'.
 
Therefore, if CURSLOC=YES it is possible to have
both these conditions occur for the same field, in
which case the `F' suffix field will contain a X'82'.

Copyright: IBMMAINFRAMES.c 49
om
EDITING
      Map field Definition
  PICIN/PICOUT
    Built in function
  De-edit command
  - When data is sent out via the `O' suffix fields or
received into the `I' suffix fields you may want a
definition other than PIC x. PICIN AND PICOUT allows
the user to use other COBOL PICS such as $,Z etc.
  - If the date contains special characters, you may want
to remove them using the BIF DEEDIT command.

Copyright: IBMMAINFRAMES.c 50
om
PIC IN/PIC OUT
  - If PICIN/PICOUT is not coded in the macro, the pic
generated is always PIC X (length of field)
 
- By using PICIN/PICOUT BMS can be forced to
generate the appropriate PIC.
 
- PICIN tells BMS how to move data into the `I' suffix
field.
 
- PICOUT tells COBOL how to edit your data move to the
`O' suffix field.

Copyright: IBMMAINFRAMES.c 51
om
FIELD EDIT BUILT-IN
FUNCTION

Amount BIF Amount


  $5431.80 EDIT 00543180
 
   EXEC CICS
BIF DEEDIT
FIELD (amount)
LENGTH (8)
END-EXEC.

Copyright: IBMMAINFRAMES.c 52
om
FIELD EDIT
  - BIF DEEDIT is used to remove the special characters from the
input field.
 
 The Amount field displayed has a dollar sign and a decimal
point
  By using BIF DEEDIT dollar sign and decimal point is
removed. Thus the number can be used for arithmetic
operations.
    COBOL compiler requires LENGTH specification:
 
VS COBOL-II uses the implied length of the data-area
used in the field parameter.

Copyright: IBMMAINFRAMES.c 53
om
 
CICS
PROGRAM
COMPONENTS
Copyright: IBMMAINFRAMES.c 54
om
OBJECTIVES
      Structure of CICS Application Program
     CICS Management Functions
    Starting a Task
  Conversational& Pseudoconversational
transactions
      CICS Program preparation
      CICS Program testing & Debugging
      CICS commands
     Passing Data across tasks

Copyright: IBMMAINFRAMES.c 55
om
STRUCTURE OF CICS
APPLICATION PROGRAM
  Identification Division
     Program - ID required
      Other comments as below, are optional but recommended
 
- Author
- Date-Written
- Date-compiled
- Remarks
 Environment Division
  - Only header is required

Copyright: IBMMAINFRAMES.c 56
om
STRUCTURE OF CICS APPLICATION
PROGRAM - Contd…
 COBOL statements and CICS commands should be
coded
     The following COBOL statements are prohibited.
  - ACCEPT, CURRENT-DATE, DATE, DAY,
DISPLAY, EXHIBIT, STOP RUN, TRACE
 - Any I/O Statements
 (OPEN, CLOSE, READ, WRITE, REWRITE,
DELETE, START)
- REPORT WRITER feature
  - SORT feature

Copyright: IBMMAINFRAMES.c 57
om
STRUCTURE OF CICS
APPLICATION PROGRAM -
Contd…

 
  CALL statement is allowed if the called
program does not issue any CICS commands
or inhibited COBOL statements mentioned
above.

Copyright: IBMMAINFRAMES.c 58
om
TERMINATION STATEMENTS
CALLER

CALL CALLED
CICS
GOBACK
SYSTEM
STOPRUN

GOBACK
EXIT
PROGRAM
STOPRUN

Notes :This is not the way to terminate a CICS program. CICS has a
command for that purpose. Nevertheless, COBOL and VS COBOL II
have three statements to conclude programs.
  Control must not be allowed to pass beyond the last statement of a
CICS Program.
Copyright: IBMMAINFRAMES.c 59
om
TERMINATION
STATEMENTS Contd…
   
 STOP RUN in COBOL uses operating system
facilities, and therefore, is discouraged.
 
 EXIT program is ignored if the program has
not been called.
 
 CICS RETURN COMMAND and/or GOBACK
statement is recommended.
Copyright: IBMMAINFRAMES.c 60
om
CICS MANAGEMENT FUNCTIONS

Task File

Program
Security

CICS

System
Recovery Services

Terminal Queue

. Copyright: IBMMAINFRAMES.c 61
om
DEFINITIONS
     Transactions
  An exchange between a terminal and a data
base representing an application process. For
example, an inquiry or a deposit and balance
update
     Task
  A specific instance of a transaction i.e. a unique
unit of work.
      Program
 Prepared statements compiled or assembled into
an executable module of machine instructions.

Copyright: IBMMAINFRAMES.c 62
om
CONVERSATIONAL
TRANSACTION
   
     Program uses a pair of SEND and RECEIVE
commands.
      Program waits until the user responds.
      Resources are held until the user responds.
       Very inefficient way of conversing with the user.

Copyright: IBMMAINFRAMES.c 63
om
PSEUDO CONVERSATIONAL
TRANSACTION
      The task is terminated after a message is sent with
a linkage for the next task. CICS provides a facility
(COMMAREA) to made it easier to accomplish
this.
       When the user completes response (by pressing
enter) reset task is automatically initiated by
CICS.
    The task receives the message from the terminal
& processes it.
     This is a multitask operation from system's point
of view.
  Copyright: IBMMAINFRAMES.c 64
om
CONCURRENT EXECUTION  

 The procedure Division represents the executable


instructions of a program. In CICS, tasks may concurrently
use the same program.
     The working storage section contains data items used by
the program, tasks cannot share data items; each task
requires its own unique set of data items.
    Working storage is not the only type of storage maintained
by CICS for each executing task.
   The command level interface initialized each task copy of
invoking storage according to the VALUE classes in the
program before program gets control.

Copyright: IBMMAINFRAMES.c 65
om
PROGRAM PREPARATION
Source

DB2
Precompiler

CICS
Translator

COBOL
Compiler

Link
Edit

Load
Module

. Copyright: IBMMAINFRAMES.c 66
om
PROGRAM PREPARATION Contd…

   
 Running the DB2 precompiler first is the preferred
method. DB2 precompiler precedes another process,
binding, not mentioned here.
 
  Output of the DB2 precompiler can serve as input to the
translator.
 
 Output of the translator will be input to the compiler.

  Messages or warnings are provided on all the listings.


 

Copyright: IBMMAINFRAMES.c 67
om
PROGRAM PREPARATION Contd…

        TRANSLATOR
  - The translator recognizes EXEC CICS and EXEC DLI
statements. They are commented out and replaced with
statements in the appropriate language. Here, COBOL
MOVE instructions and a CALL are inserted and passed on
to the COBOL compiler.
       DB2 Precompiler
 
- The DB2 precompiler is supplied by the relational
data base managers, DB2 and SQL/DS. It recognizes EXEC
SQL statements which it will comment out and replace with
in our case. COBOL PERFORM and CALL statements.

Copyright: IBMMAINFRAMES.c 68
om
PROGRAM PREPARATION Contd…

   
   Output of the transaction is i/p to the compiler
 
  The o/p of the linkage editor is executable. The load
module is placed in the CICS online program library.
 
 Messages or warnings are provided on all the listings. The
compiler listing is or limited use if the translator listing would
not process all commands.

Copyright: IBMMAINFRAMES.c 69
om
TESTING

New
Load Module

Old
Load Module

. Copyright: IBMMAINFRAMES.c 70
om
TESTING Contd…
   
CEMT set program (prg1) New comp
  Or
  CEMT S PR (prg1) N
       After making changes to a program the new version replaces old
version, but CICS which is currently executing has no way of knowing this
automatically. The CICS processing program table PPT still points to the
old-version.
 
     To avoid testing with the old version, you must use the CICS-
provided CEMT transaction to update the pointer to the program.
 
      

Copyright: IBMMAINFRAMES.c 71
om
COMMON FORMAT
END-
EXEC CICS SEND FROM (FLDA) LENGTH (5)
EXEC

Keywords Function Option Argument Option Argument Delimeter

      A CICS command consists of a keyword phrase, delimiter,


function, options and their argument values.
       Be careful about periods. Avoid them after END-EXEC.
Where you don't really want them. For eg. within an
 
     If .... then ... else statement
 
     The translator will place a period into the generated code if
a period follows end-exec.
  Copyright: IBMMAINFRAMES.c 72
om
ARGUMENT VALUES
  data - value PIC S9(4) comp Halfword binary
PIC S9(8) comp Fullword binary
PIC X(15) character string constants
permitted
data - area COBOL data name eg :-
(Not a constant) 01 Record-area.
05 Fld 1
05 Fld 2
name COBOL data name Character string
label Paragraph name
hhmmss PIC S9(7) comp 3 Packed decimal
pointer-ref BLL cell Usage pointer

Copyright: IBMMAINFRAMES.c 73
om
RECEIVE COMMAND
       EXEC CICS RECEIVE
INTO (data area)
LENGTH(ml)
END-EXEC
 
- RECEIVE command is used to receive incoming data
from the terminal to which this CICS transaction is
associated.
  - A receiving area must be defined in working storage
section and has to be specified in the INTO parameter.
  - Length field must be defined in working storage section
as a S9(4) comp. It has to be specified in length option.
 
Copyright: IBMMAINFRAMES.c 74
om
SEND COMMAND
   
     EXEC CICS SEND
FROM (data area)
LENGTH(ln)
END-EXEC
  - The data to be sent must be stored in working storage
section, and this field name has to be specified in the
FROM parameter.
 
- Length must be specified the same as that of the
Receive command.

Copyright: IBMMAINFRAMES.c 75
om
EXCEPTIONAL CONDITIONS
 
     RESP option
  - Define a full word binary field S9(8) comp in the
working storage section as the response field.
  - Place RESP option with the response field in any
CICS command.
  - After command execution, check the response code in
the response field with DFHRESP (xxxx) where xxxx is
 
- NORMAL for normal completion
  Or
- Any exceptional condition

Copyright: IBMMAINFRAMES.c 76
om
HANDLE CONDITION

   
   Handle condition command is used to transfer
control to the procedure label specified if the
exceptional condition, specified occurs.
 
     Remains active until the end of program or
another handle condition request overrides it.
 

Copyright: IBMMAINFRAMES.c 77
om
IGNORE CONDITION
   
   Ignore condition command causes no action to
be taken if the condition specified occurs in the
programs.
 
 Request by the IGNORE CONDITION
command is valid until the subsequent HANDLE
CONDITION command for the same condition.
 

Copyright: IBMMAINFRAMES.c 78
om
NO HANDLE OPTION
   
   If NOHANDLE option is specified in any CICS
command, no action will be taken for any
exceptional condition occurring during
execution of this command.
  Eg : EXEC CICS SEND
  From (...)
Length (...)
NOHANDLE
END-EXEC

Copyright: IBMMAINFRAMES.c 79
om
FORMATTING TIME AND DATE

   
     ASKTIME Command
 
- used to request the current date and time
 
- EIBDATE and EIBTIME fields have the values at the
task initiation time.
      FORMAT
 
EXEC CICS ASKTIME END-EXEC

Copyright: IBMMAINFRAMES.c 80
om
FORMAT TIME COMMAND
  - used to receive the information of data and time in various
formats.
  - Format
  [YYDDD (data - area)]
[YYMMDD (data - area)]
[YYDDMM (data - area)]
[MMDDYY (data - area)]
[DDMMYY (data - area)]
[DATESEP(data - value)]
[DAY OF WEEK (data - area)]
[DAY OF MONTH (data - area)]
[MONTH OF YEAR (data - area)]
[YEAR (data - area)]
[TIME (data - area)]
[TIMESEP (data - value)]
    Copyright: IBMMAINFRAMES.c
om
81
FORMAT TIME COMMAND Contd…

   - DATESEP represents data separator (default is "/").


 
- TIMESEP represents time separator (default is ":").
 
- The data area for the ABSTIME option of ASKTIME and
FORMATTIME commands must be a 15-digit packed
decimal data type.
 

Copyright: IBMMAINFRAMES.c 82
om
DELAY COMMAND
     DELAY command
 
- used to delay the processing of a task for the specified
time interval or until the specified time.
 
 FORMAT
  EXEC CICS DELAY
   INTERVAL (002000)
     TIME (152000)
End - EXEC
  - Task will be suspended for 20 minutes if INTERVAL is specified
or until 15:20:00 if TIME is specified.
 
 
Copyright: IBMMAINFRAMES.c 83
om
COMMAREA

  -     Passing data via the COMMAREA


 
- pseudo conversational task to task
 
- Linking program to program
 

Copyright: IBMMAINFRAMES.c 84
om
PSEUDO CONVERSATIONAL
PCT ENTRIES Program 1
TRN 1 Program 1 Send
Return
TRN2 Program 2 Transid TRN 2

Program 2
Receive
Send
Return

  RETURN TRANSID will terminate the task and specify the next
transaction ID as TRN2
    When the operator enters data, TRN2 will automatically start (a task will
be created) and the program program 2 will be invoked.

Copyright: IBMMAINFRAMES.c 85
om
PASSING DATA TO NEXT TASK
TRN1
Working Storage Copy

comstart comstart

TRN2
Program 1 Program 2
Procedure

Return Linkage
Transid ('TRN2') DFHcommarea
Commarea (Constant)

     A commarea is a CICS maintained unit of storage for passing and


receiving data between CICS program 

   The first time a COMMAREA is passed. It must begin as an area


storage in the working storage section of the program passing
commarea.
  The RETURN statement has a parameter for passing a COMMAREA to the
program associated with a subsequent transaction.
Copyright: IBMMAINFRAMES.c 86
om
PASSING DATA TO NEXT
TASK - Contd…

       The subsequent program (the receiver of the commarea)


MUST define DFHCOMMAREA in its LINKAGE
SECTION. Having done that, it will automatically have
access to all COMMAREA fields.
 

Copyright: IBMMAINFRAMES.c 87
om
PSEUDO CONVERSATIONAL
PCT ENTRIES Payroll
PAYR PAYROLL Send
Return
Transid (Payr)

Payroll
Receive
Send

     Return

  Notes :
 
      This pseudo conversational design will invoke the same program for each
 part of the conversation.
  - The Return transid will terminate the task and specify the next transaction.
  - When the operator enters data PAYR will automatically start (task will be
created) and the program PAYROLL will be invoked.

Copyright: IBMMAINFRAMES.c 88
om
PASSING DATA TO NEXT TASK
PAYR
Working Storage

comstart commarea

PAYR
Pay Roll PAYROLL
Procedure

Return Linkage
Transid ('PAYR') DFHcommarea
Commarea (Constant)

Notes : 
    The first time commarea is passed, it must begin as an area of storage in the
working storage section of the program passing it.
 
   A commarea parameter in the RETURN will pass the area to the program
associated with the subsequent transaction. In this case, itself.
 
  The subsequent program (in this case the same program) must define access to all
the commarea that was passed to it.
Copyright: IBMMAINFRAMES.c 89
om
PASS DATA TO NEXT TASK
- Contd…
     PAYROLL as both the sender and the receiver of the
COMMAREA needs the working storage definition to
send and the linkage section DFHCOMMAREA to
receive.
 
  PAYROLL must therefore be able to distinguish
between FIRST TIME into the program. When there is
no COMMAREA and subsequent times in. Where one
exists in the Linkage section. The EIB field, EIBCALEN
indicates the length of the commarea.
 

Copyright: IBMMAINFRAMES.c 90
om
EIBCALEN
       First time into the program no commarea exists,
therefore EIBCALEN = 0
 
- While returning the control to CICS the working storage
is loaded and this is sent via the commarea
parameter
in the RETURN Transid.
 
- On subsequent entry, commarea exists and is
automatically made addressable by CICS in the linkage
section of DFHCOMMAREA

Copyright: IBMMAINFRAMES.c 91
om
PASSING DATA USING
LINK
To pass control from one program to another and
then return to the original like executing a
subroutine.

 The link command passes control to another


program defined in CICS PPT expecting that the
program will return to the linking program instruction
following the LINK command. This happens when
the linked program issues a RETURN command.

Copyright: IBMMAINFRAMES.c 92
om
PASSING DATA USING
LINK - Contd…
   Data may be passed using the commarea.
 
   The commarea is shared between the two program
regains control may changes made to the commarea by
the linked program are accessible.
 
     The two programs executive under the same task.
 
   The working storage section for the linking program is
retained. Working storage for the linked program is
automatically released after its RETURN command is
executed.
Copyright: IBMMAINFRAMES.c 93
om
PASSING DATA USING LINK
Working Storage

comstart

Program 1 Program 2

Linkage
Procedure
DFHCOMMAREA
Link
procedure
Commarea (Constant)
Return

To pass control from one program to another and then


return to the original like executing a subroutine.
 
 The link command passes control to another program defined in CICS PPT
expecting that the program will return to the linking program instruction following
the LINK command. This happens when the linked program issues a RETURN
command.

Copyright: IBMMAINFRAMES.c 94
om
 

Reading External Data

Copyright: IBMMAINFRAMES.c 95
om
OBJECTIVE
  Functional overview
 
DIRECT RETRIEVAL
 
- VSAM DATA STRUCTURES
 
DIRECT RETRIEVAL
 
- RELATIONAL TABLE ROW
 
BROWSE
 
- VSAM DATA STRUCTURE
 
BROWSE
 
- RELATIONAL TABLE ROWS
Copyright: IBMMAINFRAMES.c 96
om
FUNCTIONAL OVERVIEW
RDB
CICS

FCT
CICS
Attachment
Facility
Data
FILEA
base

FCP PROGRAM

EXEC CICS
READ
EIP FILE C ('FILE')
EXEC SQL

Copyright: IBMMAINFRAMES.c 97
om
FUNCTIONAL OVERVIEW
contd…
 Entry for VSAM file has to be there in FCT (File Control Table)
 
     Each entry contains all descriptive information for the file it represents.
So, programmer need not define the physical organization and other
attributes of the files.
 
- The File parameter coded in the program must be the same as the file
name in the FCT.
 
- Interface between CICS and Relational Database is called CICS
attachment Facility. Statement are coded in SQL language in the
application program to Communicate data requests to the database.

Copyright: IBMMAINFRAMES.c 98
om
TOPICS
       DIRECT RETRIEVAL
 
- VSAM FILE RECORD
- RELATIONAL TABLE ROW
 
  BROWSE
 
- VSAM FILE RECORDS
- SET OF RELATIONAL TABLE WORKS

Copyright: IBMMAINFRAMES.c 99
om
VSAM DATA STRUCTURES
Key = 5

3 5 9

Sequential Keyed

Record 4

R1 R2 R3
Relative record

   CICS uses the following VSAM structures


 
- Key sequenced data set (KSDS)
- Entry sequenced dataset (ESDS)
- Relative record dataset (RRDS)
Copyright: IBMMAINFRAMES.c 100
om
PROGRAM ORGANIZATION
Working Storage

Record layout Definition

Record key filed

Linkage section

EIB

Procedure Division

ID entry key of record to be read

EXEC CICS Read file....

     File attributes are defined in the FCT for each file
   Files are opened by CICS
  - Immediately after system initialization if specified in the FCT.
- In response to a file access request from an application if the file is closed
- In response to a master terminal CEMT request from an operation.
 Application program is not responsible for open / close of files
Copyright: IBMMAINFRAMES.c 101
om
RECORD IDENTIFICATION
    RECORD KEY
    RELATIVE BYTE ADDRESS
     RELATIVE RECORD NUMBER
     PARTIAL KEY
  - key of the record to be read is specified in the RIDFLD.
for KSDS
  - Key specified can be a full key or partial key
  - If partial key, key length has to be provided
  - RBA (Relative Byte Address)
  - Can also be used instead of actual key value
 
     For ESDS
- RIDFLD contain a 4 byte RBA
 
     For RRDS
- RIDFLD contains 4 Byte binary relative record number.

Copyright: IBMMAINFRAMES.c 102


om
RECORD KEY DEFINITION
EXAMPLE
  WORKING - STORAGE SECTION
05 RECKEY PIC X(6)
PROCEDURE DIVISION
MOVE VALUE TO RECKEY
 
     RIDFLD must be set to the value of the key of the record to
be retrieved.
 
     RIDFLD must be large enough to hold a full record key
even when a partial key is used.

Copyright: IBMMAINFRAMES.c 103


om
READ COMMAND
       READ command with INTO Option. (FULL KEY)
  - Reads the record specified by the full key.

- The data content of the record is moved into the specified data-
area defined in the working storage section.
 F FORMAT
  EXEC CICS READ
DATASET (name) | FILE (name)
INTO (data-area) | SET(ptr-ref)
RIDFLD (data-area)
[ LENGTH (data-values) ]
END - EXEC.
 - DATASET / FILE names the file.
- It must be defined in FCT.
INTO names the field in the working storage section where the
data has to be placed.
- RIDFLD is the key field.
LENGTH is half word binary. It indicates maximum length of the
record to be read. It is optional.
Copyright: IBMMAINFRAMES.c 104
om
EXCEPTIONAL CONDITIONS
  DUPKEY : If duplicate record is found for the specified key.
 
NOTFND : If the record is not found for the key
specified.
 
LENGER R LENGERR : The specified length (in LENGTH
OPTION) is shorter than the actual record length.
 
NOTOPEN NOTOPEN : When file specified is not open.
 
The exceptional condition can be trapped using RESP option in the
READ command.

Copyright: IBMMAINFRAMES.c 105


om
READ
      READ command with GENERIC OPTION
 
     Used to read a nonspecific record based on the generic

key. (i.e. higher part of key) specified, instead of full key.


 
FORMAT
  EXEC CICS READ
FILE (‘FILEAAA’)
INTO (FILE-IOAREA)
RIDFLD (REC-KEY)
KEYLENGTH (3)
GENERIC
LENGTH (WS-LEN)
END-EXEC
 
- KEY LENGTH specifies length of Generic key.
Copyright: IBMMAINFRAMES.c 106
om
EXAMPLE
  MOVE 50 TO WS - LEN
MOVE ‘BAG’ TO REC - KEY.
  EXEC CICS READ
DATASET (‘FILEAAA’)
INTO (data-area)
RIDFLD (REC-KEY)
KEYLENGTH (3)
GENERIC
LENGTH (WS-LEN)
END-EXEC.
 DATA IN FILE
  ARG 112
ARG 111
BAG 110
BAG 112 This record will be read as this is the first
TRG 111 record with generic key ‘BAG’
 
EXCEPTIONAL condition :
  INVREQ: Key length specified is greater than the actual key length of the record

Copyright: IBMMAINFRAMES.c 107


om
READ COMMAND
     READ command with GTEQ option
 
- Used to read a non-specific record whose key is equal to or greater than the full
key data specified.
 
FORMAT
 
EXEC CICS READ
FILE (‘FILEAAA’)
INTO (data-area)
RIDFLD (REC-KEY)
GTEQ <---- Greater than or equal to
LENGTH (WS-LEN) Search.
END - EXEC.

Copyright: IBMMAINFRAMES.c 108


om
BROWSE COMMANDS
Establish position
 
STARTBR
 

RETRIEVE RECORD
 
READPREV READNEXT
  CHANGE POSITION
 
 
RESETBR
 
END BROWSE ENDBR
Copyright: IBMMAINFRAMES.c 109
om
BROWSE

     BROWSE
 
- VSAM FILE RECORDS
- Establish position
- Retrieve and process records
- Terminate browse

    Record retrieved as a part of browse cannot be


updated during browse.

Copyright: IBMMAINFRAMES.c 110


om
STARTBR
    STARTBR COMMAND
  - to establish starting position for a file
 FORMAT
  EXEC CICS STARTBR
FILE (name)
RIDFLD (data-area)
GTEQ
END-EXEC.
 OPTIONS :
  GTEQ  If no record is found for exact key, CICS places position to next available
record
  EQUAL  If no record is found for the exact key, exceptional condition NOTFND
occurs
GENERIC Places the position at the first record of partial key
 
 Exceptional conditions.
      DSIDERR : File specified is not found in FCT.
  OTFND : Specified Record is not found

Copyright: IBMMAINFRAMES.c 111


om
READNEXT
     READNEXT command
 
- Used to read a record of a file sequentially forward
 
- STARTBR must be successfully completed before READNEXT
command
 FORMAT
  EXEC CICS READNEXT
FILE (name) | DATASET(name)
INTO (data_area)
LENGTH (data_value)
RIDFLD (data_area)
END-EXEC.
 EXCEPTIONAL CONDITIONS.
 
DUPKEY : If Duplicate record is found for key specified.
 ENDFILE : End of file detected.
LENGERR: Actual record length greater than the length specified
Copyright: IBMMAINFRAMES.c 112
om
READPREV
READPREV command
 
- Used to read a record of a file sequentially backward
 
- STARTBR must have been successfully completed before
READPREV command
 
Options and parameters are same as READNEXT command
 
EXCEPTIONAL Conditions
 
NOTFND: If no record is found for key specified
 
INVREQ: Generic option must not be used in the STARTBR
command prior to READPREV command if used, this
condition occur.
Copyright: IBMMAINFRAMES.c 113
om
ADDRESSABILITY
TECHNIQUES

Copyright: IBMMAINFRAMES.c 114


om
XCTL COMMAND
EXEC CICS XCTL
PROGRAM (PROGRAM NAME)
RESP (EXCEPTION)
END-EXEC.
 
IF EXCEPTION = DFHRESP (PGMIDERR)
 
  a module given control through the use of a CICS XCTL
command will not return to the program that issued the XCTL.
 
- The required. program name is character string constant (max
8 characters)
 
- The PGMIDERR exception condition occurs when the name is
not in the PPT.
Copyright: IBMMAINFRAMES.c 115
om
LOGICAL LEVELS

Level 0 The CICS System

Level 1 First Program


Linking
  

Level 2 Second Program

    The linked to program runs at a new logical level and


returns to a logical level back to the linking program.
 
The linking program and its storage area remain
available. Copyright: IBMMAINFRAMES.c 116
om
LOGICAL LEVELS - Contd…
Commarea

Link

Return

Notes :
     To quit the repeated execution simply RETURN without
the TRANSID option.
    Any linked program could use the same COMMAREA of
the parameters so indicated.
       The transid & commarea option easy enough to use to
make this method practical.

Copyright: IBMMAINFRAMES.c 117


om
PROGRAMS TO PROGRAM
TRANSITION

   CICS LINK
 
     CICS XCTL
 
     COBOL CALL
 
     Alternative to XCTL or LINK  COBOL CALL
 
     COBOL CALL passes control to other programs.
  Copyright: IBMMAINFRAMES.c
om
118
PASSING DATA USING INPUT MSG
MENU
WORKING STORAGE WORKING STORAGE

PROG MNU PROG BWS

Move Move

.
.
MENU - IN   IN-AREA
.
.      INPUT MSG & INPUT LEN PARAMETERS USED WITH XCTL OR LINK.
 
     Receiver uses EXEC CICS RECEIVE command
.
.
 
 
 
 
 
 
 
 
PROCEDURE
  PROCEDURE
  ..
  .
RECEIVE INTO (INAREA)
  . XCTL (PROG BWS)
  ..
  INPUT MSG (MENU-IN)
RETURN
INPUT LEN (11)
     INPUT MSG & INPUT LEN PARAMETERS USED WITH XCTL OR LINK.
     INPUT MSG & INPUT LEN PARAMETERS USED WITH XCTL OR LINK.
 
     Receiver uses EXEC CICS RECEIVE command

Copyright: IBMMAINFRAMES.c 119


om
PASSING DATA USING LINK
AREA1 PIC x (200) dotted Linkage Section
01 DFHCOMMAREA
 05 AREA2 PIC X(200)

COMMAREA(AREA1) EIBCALEN=100
LENGTH(100)

     1ST Program - COMMAREA - Length 100


 
Data violation as 2nd Program (receives) tries to move 200 char

  

Copyright: IBMMAINFRAMES.c 120


om
PASSING A COMMAREA WITH XCTL
WORKING STORAGE
COPY
WORKING STORAGE

PROG MNU PROG BWS

.
CONSTANT .
 
.
LINKAGE SECTION
PROCEDURE DFHCOMMAREA
  PROCEDURE
.           If data is to XCTL
be passed to the XCTLed   program, a COMMAREA can be
used. DataCOMMAREA
area is to be located in the RETURN
Linkage Section of the receiving
program. (COMSTART)
COMMAREA used with RETURN, LINK & XCTL
.

Copyright: IBMMAINFRAMES.c 121


om
ADDRESSABILITY

     DFHCOMMAREA & DFHEIBLK :


Addressable automatically by CICS
 
     Dynamically acquired storage :
Addressable by program
 
     Not necessary to always do a EXEC

 CICS GETMAIN explicitly


  Copyright: IBMMAINFRAMES.c
om
122
     

CICS QUEUEING FACILITIES

Copyright: IBMMAINFRAMES.c 123


om
CICS QUEUEING FACILITIES
 
     Two facilities to store data that are temporary in
nature.
 
      This data is created or collected by one or more
online transaction to be used later by the same
transaction or by a different transaction or even later
passed to a batch program.

 They are
       Transient data Queue (TDQ)
 
     Temporary storage Queue (TSQ).
 
Copyright: IBMMAINFRAMES.c 124
om
TRANSIENT DATA QUEUE
     They are identified by a 4 character ID called destination
ID
 
     Destination ID and other characteristics of TDQ are
defined in the destination control table (DCT) by the
system programmer.
 
     2 types of TDQ’s
 
- Intra Partition TDQ
 
- Extra Partition TDQ  

  Copyright: IBMMAINFRAMES.c
om
125
TRANSIENT DATA QUEUE -
Contd…
Intra Partition TDQ - Processed
only within the same CICS region
 
Extra Partition TDQ - Individual
Sequential Files processed between the
transaction of the CICS region and the
system outside of the cics region

Copyright: IBMMAINFRAMES.c 126


om
INTRA PARTITION TDQ
 
     All Intra partition TDQ are stored in only 1 physical file
(VSAM)
 
     Record from the queue can be returned sequentially.
 
     Record can be written sequentially.
 
     Records can be of variable length format
 
     Several tasks can write to the same TDQ but only one
task can read from TDQ.
Copyright: IBMMAINFRAMES.c 127
om
INTRA PARTITION TDQ -
Contd…
Intra Partition TDQ is used in application such as
 
   Interface among CICS transaction. Applicati on
 program 1 TDQ Appl . Pgm 2
 report
 
     Automatic task Initiation (ATI)
 
     Message routing
 
    Message Broad cast.
  Copyright: IBMMAINFRAMES.c 128
om
EXTRA PARTITION TDQ
    Extra partition TDQ is a separate physical file & may
be a disk, tape or reporter.
 
    DCT determines the initial open / close status of a
file while the file can be opened or closed through the
master terminal transaction during CICS session.
 
   TDQ can be defined as an Input or output but not
both.
 
     Records are fixed, variable, blocked or unblocked.
      Copyright: IBMMAINFRAMES.c 129
om
APPLICATION
 
(1) Interface to batch, TSO, or PC)
CICS Application TDQ -File

Batch prog
 
(2) Interface from Batch
Batch Prog File TDQ
CICS Appl PROG.
Copyright: IBMMAINFRAMES.c 130
om
TRANSIENT DATA OUTPUT
EXEC CICS
WRITEQ TD
QUEUE (NAME)
FROM (DATA-AREA)
[LENGTH (DATA-VALUE)]
END-EXEC.
 Common for both TDQ's
  Transient data input
 EXEC CICS
READQ TD QUEUE (NAME)
INTO (DATA-VALUE)
[LENGTH (DATA-VALUE)]
END-EXEC.
 Common for both TDQ's.
  Deletion of TD's
 EXEC CICS DELETEQ TD
QUEUE (NAME)
END-EXEC.
Copyright: IBMMAINFRAMES.c 131
om
TRANSIENT DATA OUTPUT

     Appears only for Intra-partition TDQ.


 
   Deletes all records associated with t
 the named destination.
 
     All associated storage is released.

Copyright: IBMMAINFRAMES.c 132


om
EXCEPTIONAL CONDITIONS

(i) Special handling required


 
LENGERR - length specified is greater than the
maximum record length specified in DCT
 
Qzero - Destination empties or end of TDQ
(ii) error
 
Qlderr - The dest ld specified cannot be found
in DCT.

Copyright: IBMMAINFRAMES.c 133


  om
LOGICAL LEVELS - Contd…

TSP

AUXILIARY
TEMPORARY
STORAGE
EXEC CICS
READQ / WRITE Q TS RECORDS
TEPRSTOR VSAM (ESDS)

   Copyright: IBMMAINFRAMES.c 134


om
TEMPORARY STORAGE
QUEUE - Contd…
   TSQ is a queue of stored records.
  Created & deleted dynamically by application program.
    Used as a scratch pad
    Queue ID is of length 1-8 bytes
    TSQ is of variable length
    Records can be stored in main or auxiliary storage
    The records once written remains accessible until the
entire TSQ is deleted
     Records can be read sequentially or directly
     Records can be re-read & updated.

  Copyright: IBMMAINFRAMES.c
om
135
WRITEQ TS
To write or re-write a record in TSQ
  EXEC CICS WRITEQ TS
QUEUE (NAME)
LENGTH (DATA-VALUE)
[ITEM (DATA-AREA).
[REWRITE]
[MAIN | AUXILIARY]
END-EXEC.
 ITEM - If this option is coded CICS write return the item number
assigned to the record just written.
 REWRITE - is used to rewrite the record identified by ITEM.
 Main / Auxiliary - To specify the storage medium. Will be stored in
main if auxiliary storage not supported.
 
Copyright: IBMMAINFRAMES.c 136
om
READQ TS
Can be used to read records either sequentially or directly.
 Syntax
  EXEC CICS READQ TS
QUEUE (NAME)
INTO (DATA - AREA)
LENGTH (DATA-VALUE)
[ITEM (DATA-VALUE) | NEXT]
[NUMREC (DATA-AREA)]
END-EXEC.
NEXT - to retrieve the next - logical record in the TSQ.
  mutually exclusive to the item option
  NUMREC - the data area is defined as PIC 9(4) comp. to
find the Total no. of records in the TSQ.
 Item - for direct access specify the item no of the record.
 
Copyright: IBMMAINFRAMES.c 137
om
DELETEQ TS of TSQ

EXEC CICS
DELETEQ TS
QUEUE (NAME)
END-EXEC.
 
     All records is TSQ are deleted.
 
     All associated storage is released.
Copyright: IBMMAINFRAMES.c 138
om
EXCEPTIONAL CONDITIONS

(1) Special handling required


 
Itemerr - Item number
specified is not in the range of entry number
assigned for the Queue.
  Lengerr - Length specified is greater than
the maximum record length.
(2) error
  Q iderr - specified is Queue id not found.
 
Copyright: IBMMAINFRAMES.c 139
om
    

TESTING & HANDLING


 
EXCEPTIONS

Copyright: IBMMAINFRAMES.c 140


om
COMMANDS FOR TESTING
APPLICATION PROGRAMS
 
     CECI (Command Level Interpreter) is a
CICS - supplied transaction which performs
syntax checking of a CICS command. If the
syntax is satisfied, it will execute the command.
      CEBR (Temporary Storage Browse) is a
CICS - supplied transaction which browses
Temporary Storage Queue (TSQ).
     CEDF is a CICS - supplied transaction
which monitors the execution of an application
program as an interactive debugging aid.
   Copyright: IBMMAINFRAMES.c 141
om
APPLICATION PROGRAM
SUPPORT
     RESP and NOHANDLE
 
     IGNORE CONDITION
 
     HANDLE CONDITION
 
      HANDLE AID

    HANDLE ABEND
  Copyright: IBMMAINFRAMES.c
om
142
COMMAND LEVEL
INTERPRETER
   For invoking CECI, type CECI with the CICS command to
be interpreted.
 
  The first screen lists all the possible CICS commands.
 
   Giving question mark (?) before the command requests a
syntax check only. No execution.
 
Ex. CECI SEND MAP (`SPOOMPO')
MAPSET (`SPOOMSO')
ERASE
 

  Copyright: IBMMAINFRAMES.c
om
143
BROWSING CICS QUEUES
     CEBR can be invoked while you are
already in the CEDF mode.
 
      Press the PF5 key to display the working
 storage section.
      Then, press PF12 key to invoke CEBR.
      CEBR allows to browse information in
Temporary Storage (TS) queues.
    Help (PF1) give you a list of CEBR
commands on the screen.
  TS queues are retained until purged.
Copyright: IBMMAINFRAMES.c 144
om
EXCEPTION HANDLING
CICS to respond to exceptional conditions in one of
three ways:
      RESP option: -
  The RESP option can be specified in any CICS
command. Its function is similar to the return code in
the batch program.
 - Define a fullword binary field (S9(8)COMP) in the
working storage section as a response field.
  - Place the RESP option with the response filed in a
command.
  - After command execution, check the response
code in the response field with DFHRESP (xxxx), where
xxxx is the - NORMAL
  - Any exceptional condition
 
Copyright: IBMMAINFRAMES.c 145
om
EXCEPTION HANDLING
Ex.: Working - Storage Section
  77 WS-RESP PIC S9 (8) COMP
  PROCEDURE DIVISION
EXEC CICS SEND
  From (- - -)
  Erase
  Resp (WS-Resp)
  End-Exec.
  If WS-RESP = DFHRESP (NORMAL)
GO TO NORMAL - PARA
If WS-RESP = DFHRESP (LENGERR)
GO TO LENGERR - PARA
GOTO GENERAL - PARA
Copyright: IBMMAINFRAMES.c 146
om
EXCEPTION HANDLING
      HANDLE CONDITION
 This command is used to transfer control to the procedure label
specified if the exceptional condition specified occurs.
      IGNORE CONDITION
 This command causes no action to be taken if the condition specified
occurs in the program.
 EXEC CICS HANDLE CONDITION
Condition (Label)
[Condition (Label)]
[Error (Label)]
END-EXEC.
or
 EXEC CICS IGNORE CONDITION
Condition
[Condition]
END-EXEC.
Copyright: IBMMAINFRAMES.c 147
om
EXCEPTION HANDLING
INTRODUCTION - Contd…
        ABEND CODE
 
If an exceptional condition occurs during
execution of a CICS application program
and if the program does not check the
exceptional condition, CICS may continue
executing the program or terminate
abnormally the execution of the program,
depending on the exceptional condition
and the command involved.
  Copyright: IBMMAINFRAMES.c
om
148
LOGICAL LEVELS - Contd…
CICS-Maintained
Application Program
condition Table

EXEC CICS CONDITION


HANDLE CICS UPDATES INVREQ
CONDITION CONDITIONS DUPREC
END-EXEC ENDFILE
EOF
QIDERR
ERROR
EXEC CICS
IGNORE CICS UPDATES
CONDITION CONDITIONS
END-EXEC

Copyright: IBMMAINFRAMES.c 149


   om
OPTION FOR EXCEPTION
HANDLING
     CODE RESP keyword in commands: CHECK USER-
SUPPLIED FIELD IN WORKING - STORAGE.
 
     CODE NOHANDLE KEYWORD IN COMMANDS.
 
    HANDLE CONDITION
COMMANDS
     IGNORE CONDITION
 
SYSTEM DEFAULT ABEND

Copyright: IBMMAINFRAMES.c 150


om
COPYRIGHT

This product is licensed to


IBMMAINFRAMES.com. Reproduction or
reusing without permission is strictly
prohibited.

All Rights reserved. Copyrighted to: IBMMAINFRAMES.com


Written By: Mcmillan

You might also like