CICS

. Customer Information Control System 28th July 2009

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

Sequential.disk. Updated files System log. 4 . File I/O I/O must be in sequence.O/P files. Messages thrown to console. Data from card.tape. concurrent. I/O can be concurrent. Instant. Scheduled Update Reserved during a job.Batch System Input V/S Online System Data from terminal. Of file Other jobs have to wait. Output Printed reports. Reports. Random. Concurrent. Can be entered as data arrive.

Turnaround Usually much longer. Airline Reservation . Single task & thread Multitask & Multithread Priority in job scheduling. Each transaction . triggers the transaction. More Usage. Almost Instantaneous. Appln. Monthly Sales Report.Start of job Process mode Operator (or OS) initiates Entering Trans-ID job. Resources Less Usage. Priority processing. End of job Each job. 5 .

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

 Easy forms development using BMS facility.  Data independence. 7 .  Sharing of code between applications..)  No need to code for displaying data onto the screen.  Device independence.Features of CICS (Contd..

Program VTAM / TCAM Terminal Users 8 .VSAM Disk Files CICS Application.

TCAM) Other Systems Data Storage Data-handling Functions CICS / MVS System Services Monitoring Functions Application Program Services Terminals Data-Comm Functions CICS Application Programs (COBOL.DB2) Data Access Method (VSAM. PL/1. Assembler) 9 . BDAM) Telecommunication Access Method (VTAM.OPERATING SYSTEM Database Access Method (DL/1.

VOCABULARY          Multi User Multi Tasking Multi Programming Multi Threading Job Task Transaction Reentrancy Quasi Reentrancy 10 .

11 . regardless of whether the tasks use the same program or different programs.MULTITASKING Multitasking means that the operating system (OS) allows more than one task to be executed concurrently.

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

13 . an application program must be reentrant.REENTRANCY In order to make multithreading possible. 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.

CICS COMPONENTS    Control Programs ( Management Modules) Control Tables Control Blocks CICS core nucleus consists of Control Programs & their corresponding Control Tables. 14 .

Control Program File Control Program Interval Control Program Journal Control Program Program Control Program Task Control Program Storage Control Program Terminal Control Program Transient Data Program 15 Control Tables File Control Table Interval Control Table Journal Control Table Processing Program Table Program Control Table Storage Control Table Terminal Control Table Destination Control Table Temporary Storage Program Temporary Storage Table .

CONTROL BLOCKS  EXEC Interface Block (EIB) : CICS provides system related information to each task in the form of Exec interface block. Since the information is automatically provided by CICS the application program can use it straightaway. Continued.  Some of the most commonly used EIB information are  EIBAID : Value of last Attention identifier key pressed (1 BYTE ). 16 ...

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

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

Then CICS is ready to execute CICS transactions within its own region. dumps & reports 19 . based on which SIP further loads all control programs and tables and performs initial house-keeping tasks. SIP loads corresponding System Initialization Table (SIT). Main job-step is System Initialization Program (SIP). CICS SHUTDOWN : The computer operator terminates CICS job by entering Master Terminal Transaction (CEMT) with shut-down option. Then CICS job produces various logs.CICS STARTUP: Starting up of an CICS system involves executing a job (JCL) like any other batch-job. statistics.

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

Basic Steps in CICS Application Program Development :  Translate. FCT. compile and linkedit a CICS application program into the CICS application program library (LOADLIB). Register the user in SNT(Sign-On Table). Sign-On CICS and enter Trans-ID. Other CICS tables e. DCT must be prepared for the application programming if required. Define Trans-ID into PCT with associated program name.g. Register Terminal into TCT.  Define program into PPT . JCT. 21 .

STEPS IN APPLICATION DEVELOPMENT
COBOL Program with CICS Statements
CICS Preprocessor

COBOL Source Code

Object Module

COBOL Compiler

Link Edit 22

Load Module

INITIATION OF CICS TRANSACTION
There are five ways of initiating CICS transactions : 1. By a transaction identifier entered in a terminal with ENTER key. 2. By a transaction identifier associated with a terminal for pseudo-conversation. 3. By the START command, which initiates a transaction specified in the parameter. 4. By the Automatic Task Initiation (ATI). 5. By a 3270 attention identifier. For an IBM 3270 type terminal any of the PF and PA keys could be defined in PCT to initiate a CICS transaction.

23

PCT Transaction AAAA BBBB CCCC PPT Program AAAPGM1 BBBPGM1 CCCPGM2 Library

USER ENTERS TRANS-ID (AAAA) Program AAAPGM1 BBBPGM1 CCCPGM2 CICS locates trans-id AAAA in program control table CICS Address Space Location On Disk In Storage On Disk Load Module CICS locates program AAAPGM1 in the processing program table CICS locates load module AAAPGM1 on disk, loads it into memory, and starts the task

BBBPGM1

ORDPROG AAAPGM1 ORGPROG BBBPGM1 DDMPROG CCCPGM2

AAAPGM1

24

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

TERMINAL CONTROL SERVICE SESSION # 2 26 .

unformatted screens are used for the Terminal Control Operations. Usually. using the information defined in the Terminal Control Table.INTRODUCTION The CICS Terminal Control Program (TCP) provides communication services between application programs and terminals. 27 .

TERMINAL CONTROL COMMANDS IN CICS  SEND  RECEIVE – To print text onto the terminal screen – To receive data into a variable from the terminal  CONVERSE – To send data to terminal and receive data from terminal  ISSUE PRINT – To print all data onto the screen on printer  ISSUE COPY – To copy one terminal screen to other  HANDLE AID – To handle keys pressed on terminal 28 .

SEND COMMAND SYNTAX EXEC CICS SEND FROM (Literal / Variable) LENGTH (Literal / Variable) END-EXEC. (WS-MESSAGE-LEN is a WORKING-STORAGE variable ) 29 . Eg: EXEC CICS SEND FROM (“Enter the Number ”) LENGTH (20) END-EXEC. EXEC CICS SEND FROM (SCR-MESSAGE) LENGTH (WS-MESSAGE-LEN) END-EXEC.

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

inviting the other partner transaction to send the data and then receives data from other partner transaction. automatically switches the communication state from the send state to receive state. The CONVERSE command sends data to other partner transaction during the conversation. 31 .CONVERSE COMMAND The CONVERSE Command performs the combined functions of the SEND command with Invite option and RECIEVE command. Continued.. This CONVERSE command is used in Inter System Communication type of Intercommunication ..

Eg: EXEC CICS CONVERSE FROM (“Enter a Number”) INTO (WS -VAR) ERASE END-EXEC.CONVERSE COMMAND SYNTAX EXEC CICS CONVERSE FROM (Literal/Variable) [FROMLENGTH (Length)] INTO (Variable) [TOLENGTH (Length)] [ERASE] END-EXEC. (WS-VAR is a WORKING-STORAGE variable) 32 .

ISSUE PRINT COMMAND The ISSUE PRINT Command is used to make a hard copy of Screen on the local printer. 33 . Syntax: EXEC CICS ISSUE PRINT END-EXEC.

34 . Syntax: EXEC CICS ISSUE COPY TERMID (Terminal Name) END-EXEC.ISSUE COPY COMMAND The ISSUE COPY Command is used to copy a screen image of the terminal into another terminal.

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

SOME TIPS ON HANDLE AID COMMAND  HANDLE AID tells the program what to do when the user presses an Attention Identifier -AID key.  DFHAID is the library member having all the key valuesContinued … 36 .  It itself does not detect the key pressed.  It is always used in association with RECEIVE command.

Thus.. HANDLE AID PF3 is equivalent to IF EIBAID = DFHPF3 37 .  The system variable EIBAID holds the AID value after RECEIVE command. This value is compared with AID key definition from copy book. COPY DFHAID.) In WORKING-STORAGE SECTION.TIPS ON HANDLE AID COMMAND(contd.. * DFHAID is Copy Book to be included.

PROGRAM CONTROL SESSION # 3 38 .

PROGRAM CONTROL IN CICS OBJECTIVES :  To know more on program control. inter-program communication and inter-program Calls  Data transfer between programs  Modes of CICS application programming  Introduction to COBOL-CICS macro level programming 39 .

PROGRAM CONTROL  Program Control Program is responsible for managing the use of all application programs  The PCP uses the information available in PPT to manage the flow of control between programs Functions of Program Control are  To load programs into virtual storage  To monitor the flow of control between CICS and Application programs  To monitor the flow of control between application programs 40 .

 Normally the LS area is DFHCOMMAREA. 41 .  The length of the COMMAREA passed by the program is available in the system variable EIBCALEN in DFHEIBLK copybook.INTERPROGRAM COMMUNICATION Passing data between programs  Sending program specifies the data area.  Receiving program receives it into the data area defined in the LINKAGE SECTION. which is to pass data to the calling program in the WORKING-STORAGE SECTION.

.PASSING DATA BETWEEN PROGRAMS TRANSID: TRN1 TRANSID: TRN2 COMMAREA Program 1 Working-storage Section Program 2 Linkage Section.. DFHCOMMAREA COM Procedure Division... RETURN TRANSID(TRN2) COMMAREA(COM) 42 » EIBCALEN contains the Size of COM .

COMMANDS FOR PROGRAM CONTROL LOAD – Load a program into the CICS address space RELEASE – Release the program from CICS address space LINK – Call another program at the lower logical level XCTL – Transfer control to another program at the same logical level RETURN – Return to immediate higher logical level 43 .

a table can be coded in Assembler.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 .. That is. Continued. This command is useful for loading a table or application program dynamically.. 44 . Then COBOL program can load it as a table. as an application. assembled and link-edited.

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

(if length > 32 k) HOLD –Module resident in memory even when task terminates 46 .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.LOAD command Syntax Important Parameters : PROGRAM .

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

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

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

50 .LINK command  The LINK Command is used to pass Control from an application program at one logical level to another application program at the next lower logical level. Data can be passed to the called program through communication area parameter called COMMAREA.  The calling program expects control to be returned to it.  This command is the equivalent of CALL in COBOL.

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

Program to be linked. . Length of data area to be passed .Data area to be passed to the called program as an input .Data area to be passed to the called program .S9(4) COMP.LINK command Syntax Important Parameters : PROGRAM COMMAREA LENGTH INPUTMSG INPUTMSGLEN . Length of data area to be passed as input 52 .S9(4) COMP.

LINK flow of control CICS SYSTEM First Program: LINK Second Program: RETURN 53 .

 It does not expect control to be returned. in this command also.  Like LINK.XCTL command  The XCTL Command is used to pass control from a application program to another application program at the same logical level. data can be passed through COMMAREA to the called program.  This command is similar to the CHAIN command in COBOL. 54 .

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

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

XCTL flow of control CICS SYSTEM First Program: XCTL Second Program: RETURN 57 .

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

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

S9(4) COMP. Length of data area to be passed . .Parameter to start the next transaction immediately after the execution of the RETURN command.RETURN command syntax Important Parameters : TRANSID COMMAREA LENGTH IMMEDIATE .Data area to be passed to the next program . without user intervention 60 .Transaction id of the next program to start after the return of the current one.

Modes of Application Programming    CONVERSATIONAL NON CONVERSATIONAL PSEUDO CONVERSATIONAL 61 .

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

Continued...
62

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

Y

63

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

64

FILE CONTROL SESSION # 4 65 .

.. 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. Update. In addition it makes application programs independent of the structure of the database.INTRODUCTION The CICS File Control Program (FCP) provides application programs with services to Read. Add. and Delete records in a file (dataset). in order to maintain the data integrity during record updates. while it manages exclusive control over the records. 66 .

67 .FILE CONTROL SERVICE(contd) Data independence is a concept of program being independent of structure of data access methods...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. CICS File Control provides data independence to application programs.

.FILE CONTROL SERVICE(contd) Data set names have to be registered in File Control Table (FCT) by System Programmer to specify characteristics of file.. 68 . During Update. Files are automatically opened and closed by Master Terminal Transaction ( CEMT). a program gets exclusive control over the record being updated Continued.

FILE CONTROL SERVICE(contd)
Available Commands  READ  WRITE : Read a Record :Write a Record

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

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

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

05 REC-A. PIC 999. MOVE ‘NY001’ TO REC-A-KEY. 77 WK-LEN 01 FILE-IOAREA. PIC S9(4) COMP. MOVE 35 TO WK-LEN. PROCEDURE DIVISION.WORKING-STORAGE SECTION. . PIC X (30). PIC XX. EXEC CICS READ DATASET(‘FILEAAA’) INTO(FILE-IOAREA) RIDFLD(REC-A-KEY) LENGTH(WK-LEN) END-EXEC. 10 REC-A-KEY 15 REC-A-KEY-CITY 15 REC-A-KEY-SEQ 10 REC-A-DETAIL . 72 .

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

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

so that no other task can access this record for update.REWRITE COMMAND A combination of the READ command with the UPDATE option and the REWRITE command is used to update a record. 75 . exclusive control over the record will be maintained for this task. Between these two commands.

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

// To delete a record/group satisfying certain condition EXEC CICS DELETE DATASET (filename) RIDFLD(data-area) [GENERIC] [RBA/RRN] END-EXEC. 77 .DELETE COMMAND SYNTAX // To delete a record after it has been Read EXEC CICS DELETE DATASET (filename) END-EXEC.

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

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

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

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

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

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

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

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

BASIC MAPPING SUPPORT SESSION # 5 86 .

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

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

IBM TERMINALS Many types terminals are supported by CICS for data communication.. Y Y Y IBM 3270 Information Display System IBM 3600 Finance Communication System IBM 8775 Advanced terminals Normally. A few examples.. 3270 are the most commonly used terminals with Mainframes 89 ..

.e. the data should be sent in their native mode. they must receive data stream in their native mode called Native Mode Data Stream (NMDS).IBM TERMINALS  To communicate with any of these terminals. i. 90 .  NMDS is mixture of Buffer Control characters and Text data which is unique for individual terminal types based on their hardware protocol.

Info Addr Attr Byte Field1 Text Data C Info. Field 1 Field 2.Start of field Character 91 ... Addr SF Attr Byte Field 1 Text Data Input Data Stream C. S F .NMDS for an IBM 3270 terminal Output Data Stream C Info...

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

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 .

.  Keeps Code largely independent of Y Any changes in network of terminals Y Any changes in the terminal types Other functions include. Y Processing text Y Page building Y Multiple screens of data Y Message Routing 94  ..FUNCTIONS OF BMS  To remove device dependent codes and constant information from an application and to place them in maps thereby simplifying programming job.

MAP & MAPSET  MAP Representation of one formatted screen  MAPSET Collection of one or more map(s) 95 .

TYPES OF MAPS  PHYSICAL MAP Y It is a program in the form of a load module. 96 . Y Y Y It is loaded when executing program requests send/receive BMS services. It is a table equivalent of screen layout. It resides in the program load library.

Y Y 97 . It resides in the COPY books library. It is copied into the source program by the compiler during compilation of CICS application program.TYPES OF MAPS  SYMBOLIC MAP Y It is a group structure of COBOL variable declaration for map fields.

Edit Symbolic Map Physical Map COPY LIB LOAD LIB 98 .GENERATION OF MAPS BMS Macro ASSEMBLE Link .

USING MAPS IN A PROGRAM Source Code CICS Translator Copy Library Symbolic map COBOL Compiler Link Edit Load Module & Physical map Load Library 99 .

.. Name Operation Operands 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 70 71 72 100 .Coding an Assembler macro General syntax of an Assembler Macro..

1 Operation field starts at Col. 101 . 72 and should start after Col.  END is coded in columns 9 through 11 to delimit the program. 1. should have a nonblank character in Col. 10 Operands field starts at Col.Coding an Assembler macro      An ‘*’ in Col. 16 Any line continued to the next line. 2 in the next line  Operands should be separated by commas without spaces in-between them. notifies that it is a comment line Name field for a mapset / map / field starts from Col.

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

 The Operands. 103 .. apart form other things. Y specify whether the program will generate physical maps or symbolic maps or both while assembling the code Y specify whether the maps will be used as I/P..DFHMSD  This Operation denotes that the definitions are for a Mapset and defines the mapset properties which consists of one or more maps. O/P or both Continued.

// DSECT-Symbolic Map MAP.Physical Map Final-Last map MODE= | IN / OUT / INOUT |. // Specifies Input / Output / Input Output Mode LANG = |ASM / COBOL / PL1 |.ALARM) // PRINT -Hard copy / FREEKB.Frees kbd. // If YES puts filler(12) for control info. CTRL=(PRINT. ALARM-sound it 104 .FREEKB. // Terminal type ALL if supports all / 3270 IBM terminal STORAGE = AUTO // Each map will have separate storage area TIOAPFX = | YES / NO | . // Specifies the host language TERM = |ALL / 3270 |.DFHMSD Syntax MAPSETA DFHMSD TYPE = | DSECT / MAP / FINAL |.

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

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

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

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

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

MODIFIED DATA TAG (MDT)  MDT indicates whether the data field is modified or not. no data is transmitted for that field. If MDT is OFF . If the MDT is ON for a field. then that data is transmitted to the program.   110 .

LENGTH=20..10).Sample BMS Coding.20). MAP3 ..... 1 10 1617 MAPSETA DFHMSD TYPE=MAP.10).FRSET). ATTRB = IC MAP2 . INITIAL = ‘T I L..MODE=INOUT.80).LENGTH=6.LENGTH=8 DFHMDF POS=(3.25). 72 X X X X X DFHMSD TYPE=FINAL //Indicates end of Mapset declaration END 111 ..TERM=3270 MAP1 DFHMDI SIZE=(24.TIOAPFX=Y DFHMDF POS=(1.. LANG=COBOL..LENGTH=10.’ DATE DFHMDF POS=(1... INITIAL=‘ENTER NAME’ NAME DFHMDF POS=(3.. CTRL=(FREEKB.

SYMBOLIC MAP PHYSICAL MAP OUTPUT DATA STREAM 112 .SENDING MESSAGE TO SCREEN EXEC CICS SEND MAP (‘MAP1’) MAPSET (‘MAPSETA’) END-EXEC.

PHYSICAL MAP OUTPUT DATA STREAM 113 .SENDING MESSAGE (MAPONLY) EXEC CICS SEND MAP (‘MAP1’) MAPSET (‘MAPSETA’) MAPONLY END-EXEC.

SYMBOLIC MAP OUTPUT DATA STREAM 114 .SENDING MESSAGE (DATAONLY) EXEC CICS SEND MAP (‘MAP1’) MAPSET (‘MAPSETA’) DATAONLY END-EXEC.

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

//BMS COMMON WORK AREA COPY SYMBMAP1. .COPY BOOKS TO BE INCLUDED FOR USING BMS . WORKING-STORAGE SECTION.. //USER DEFINED MAP PROCEDURE DIVISION..... 116 . //TO USE FUNCTION KEY RESPONSES COPY DFHBMSCA... COPY DFHAID.....

Y SDF automatically generates BMS macro code.  Advantages of using SDF Y Interactive and direct definition of Screens on Terminals. DELETE. Y Provides some additional utilities like COPY.SCREEN DEFINITION FACILITY (SDF)  SDF is an interactive screen definition software which works under CICS or TSO. RENAME functions & Directory Listing.  This is an additional product supplied by IBM. Y Provides interactive TEST facility. 117 . So programmers are relieved from the troubles of coding Assembler macros.

EXCEPTION HANDLING SESSION # 6 118 .

EXCEPTION HANDLING IN CICS  RESP  HANDLE CONDITION  IGNORE CONDITION  HANDLE AID  HANDLE ABEND 119 .

RESP OPTION  The RESP option can be specified in any CICS command. The application program can check this code. This approach has an advantage over the HANDLE CONDITION approach. 120 . because this makes the program more structured. 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. then proceed to the next processing.

Place the RESP option with the response field in a command. Define a fullword binary field (S9(8) COMP) in the Working Storage Section as the response field. After command execution. check the response code in the response field with DFHRESP(xxxx). 121 . • Any exceptional comdition. where xxxx is : • NORMAL for normal completion. 3. 2.The following is the procedure to use the RESP option in a CICS command : 1.

. . .Example : WORKING-STORAGE SECTION. GO TO GENERAL-ERR-PARA. PROCEDURE DIVISION. IF WS-RETCODE = DFHRESP(LENGERR) GO TO LENGERR-PARA. IF WS-RETCODE = DFHRESP(NORMAL) GO TO NORMAL-PARA. EXEC CICS SEND FROM (_____) LENGTH(___) ERASE RESP(WS-RETCODE) END-EXEC. NORMAL-PARA. 77 WS-RETCODE PIC S9(8) COMP. 122 . LENGERR-PARA.

During the execution of this program, the following will occur : • At the completion of the SEND command, the WS-RETCODE field will have the response code of the command execution result. • If the SEND command completes normally, control will be passed to NORMAL-PARA. • If a LENGERR is encountered , control will be passed to LENGERR-PARA. • If any other exceptional condition is encountered, control will be passed to GENERAL-ERR-PARA.

123

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

124

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

IGNORE CONDITION COMMAND The IGNORE CONDITION command causes no action to be taken if the specified condition occurs in the program. The request by the IGNORE CONDITION command is valid until the subsequent HANDLE CONDITION for the same condition. The control will be passed on to the instruction following the command which encountered the exceptional condition. 126 .

127 . only 12 conditions are allowed in the same command.Syntax : EXEC CICS IGNORE CONDITION condition (condition) END-EXEC. At the most. The “condition” indicates an exceptional condition.

EXAMPLE EXEC CICS IGNORE CONDITION LENGERR END-EXEC. EXEC CICS RECEIVE INTO(_______) LENGTH(____) END-EXEC. • At the execution of the RECEIVE command. and the control will be passed to the statement after the RECEIVE command. 128 . if LENGERR exception occurs. the condition will be ignored.

 Used to execute a routine depending on a key pressed  Always used with RECEIVE command Syntax : EXEC CICS HANDLE AID attention id1 (ROUTINE1) attention id2 (ROUTINE2) attention id3 (ROUTINE3) END-EXEC. HANDLE AID COMMAND 129 .

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

and to activate. 131 . The HANDLE CONDITION command intercepts the abnormal conditions of the CICS command execution whereas HANDLE ABEND intercepts abnormal termination. cancel or reactivate an exit for the ABEND processing.HANDLE ABEND COMMAND The HANDLE ABEND command is used to intercept an abnormal termination (ABEND) in a program.

Syntax : EXEC CICS HANDLE ABEND [PROGRAM(name) | LABEL(label) | CANCEL | RESET ] END-EXEC. respectively. for ABEND processing. PROGRAM or LABEL is used to pass control to a program or a paragraph . RESET is used to reactivate the previously cancelled HANDLE ABEND request. CANCEL is used to cancel the previously established HANDLE ABEND request. 132 .

MOVE ‘TASK CANCELLED WITH ABCODE 9999. 05 MSG-DATA2 PIC X(50). 05 MSG-DATA1 PIC X(15). MOVE ‘ABEND OCCURED.EXAMPLE WORKING-STORAGE SECTION. 01 MSG-DATA. MOVE 65 TO MSG-LEN.’ TO MSG-DATA1. : ABEND-ROUTINE. 77 MSG-LEN PIC S9(4) COMP.’ TO MSG-DATA2. 133 . EXEC CICS SEND FROM (MSG-DATA) LENGTH(MSG-LEN) NOHANDLE END-EXEC. : PROCEDURE DIVISION. : EXEC CICS HANDLE ABEND LABEL(ABEND-ROUTINE) END-EXEC.

and control will be passed to ABENDROUTINE. 134 . the previous HANDLE ABEND request will be cancelled. the task will be terminated with user code ‘9999’.EXEC CICS HANDLE ABEND CANCEL END-EXEC. it will be intercepted by the HANDLE ABEND command. During the execution of the program. the following activities will occur : • If an ABEND occurs. EXEC CICS ABEND ABCODE(‘9999’) END-EXEC. • At the completion of the HANDLE ABEND/CANCEL command. • At the completion of the ABEND command.

TRANSIENT DATA QUEUES SESSION # 7 135 .

TRANSIENT DATA QUEUE OBJECTIVES  To get an introduction on Transient Data Queue  To learn to use TD Queues 136 .

but not both Continued ..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). can be used as either I/P or O/P files. which allows CICS transaction to deal with these files  Transient Data Files. also called as Transient Data Queue (TDQ) or Transient Data Destination.. 137 .

that most often these sequential data are directed to other transaction or otherwise called Destination  Each TDQ is identified by 1-4 character identifier called “Destination -id”.TRANSIENT DATA CONTROL  The term Queue is used because records are accessed in sequential mode. as in a queue  The Term destination indicates. which are to be registered in Destination Control Table (DCT) 138 .

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

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

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

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

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

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

Writes record in Q for both types Y READQ TD . if omitted the same command defaults to TSQ 145 .To delete an Intra Partition TDQ Not Valid for Extra Partition TDQ  TD in the commands stands for Transient Data .Read record from Q for both types Y DELETEQ TD .TRANSIENT DATA CONTROL  TDQ Commands Y WRITEQ TD .

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

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

 EXCEPTIONS Y QIDERR .TRANSIENT DATA CONTROL  DELETEQ TD Syntax EXEC CICS DELETEQ TD QUEUE ( <name> ) END-EXEC.DCT entry not found for the ‘Q’ 148 .

DESTINATION CONTROL TABLE  DCT`s primary function is to register Control Information of all TD Queues  Destination Control Program uses this DCT for identifying all TD Queues and perform input/output operations against them  DCT entries are defined using Assembler macros into DFHDCT for both types of TD Queues (parameters & options for both types is quite different) 149 .

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

. another transaction may be started to route the messages to a different destination Y Report Print Similarly records can be accumulated.. and at certain trigger level another transaction can be started to print the records 151 . say 1000. Y Message Switching Messages can be accumulated in a TDQ (Intra Partition) and at certain level.AUTOMATIC TASK INITIATION (ATI)  Applications.

TEMPORARY STORAGE QUEUES SESSION # 8 152 .

TSQ is identified by Queue-ID (1 to 8 bytes) & record within Queue is identified by relative position called Item Number.TEMPORARY STORAGE CONTROL  Temporary Storage Control Program (TSP) provides application program with ability to store & retrieve data in Temporary Storage Queues (TSQ) . which is created dynamically without any entries in control tables..  Characteristics of TSQs : TSQ is Queue of records stored . Continued .. 153 .

154 . Continued ... Records can be Read sequentially or directly also they can be Reread & Updated. Records once stored remain accessible until entire TSQ is deleted.CHARACTERISTICS OF TSQS (contd.. 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.) Application programs use TSQs as scratch pad memory facility for any purposes..

typically one prg writes in TSQ and other prints report using this TSQ. no chance of retrieval as in case of TDQs. Report Printing ....) TSQ is in main storage hence more efficient than TDQ. Typical Applications : Data passing between Transactions.. Continued. 155 .CHARACTERISTICS OF TSQS (contd. Only problem is if crash occurs then contents are lost.

TD in command is for Transient Data if omitted Default is TS Temporary Storage Queue.TSQ AVAILABLE COMMANDS  WRITEQ TS : To Write & Rewrite record in TSQ.  DELETEQ TS : To delete TSQ. 156 .  READQ TS : To Read record from TSQ.

... PIC X(4). Contd.... PIC X...... 157 .... PIC X(150). PROCEDURE DIVISION.......(Edit TSQ data)..... ....... PIC S9(4) COMP. MOVE EIBTRMID TO TSQ-QID-TERM........... 05 TSQ-FIELD1 05 TSQ-FIELD2 77 TSQ-LEN 77 TSQ-ITEM EXAMPLE PIC X VALUE ‘A’. PIC 99.WORKING-STORAGE SECTION....... MOVE 1 TO TSQ-QID-NUM... 01 TSQ-QID. . MOVE ‘I’ TO TSQ-QID-APPL........ CONSTRUCT QID... 05 TSQ-QID-DIV 05 TSQ-QID-TERM 05 TSQ-QID-APPL 05 TSQ-QID-NUM 01 TSQ-DATA...... MOVE 200 TO TSQ-LEN.. PIC X(50). PIC S9(4) COMP......

: If a TSQ with this QID does not exist.. where tttt is the terminal id.) WRITE A QUEUE..(Contd. 158 .. N.... EXEC CICS WRITEQ QUEUE(TSQ-QID) FROM(TSQ-DATA) LENGTH(TSQ-LEN) ITEM(TSQ-ITEM) MAIN END-EXEC.B. a TSQ will be created with QID=AttttI01.EXAMPLE ..

INTERVAL & TASK CONTROL SESSION # 9 159 .

INTERVAL CONTROL & TASK CONTROL OBJECTIVES  To know more on Interval Control and Time related functions  To know more on Task management 160 .

INTERVAL CONTROL  CICS Interval Control Program ( ICP ) provides application program a variety of time related functions. 161 . 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.

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

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

EXEC CICS START TRANID(‘ABCD’) TERMID(‘TTTT’) TIME( 090000 ) END-EXEC. // ABCD will be initiated at 9. by which CICS transactions can be initiated automatically at scheduled time or intervals.INTERVAL CONTROL  Scheduled Transaction Initiation (STI) Scheduled Transaction Initiation (STI) is an important application of the START command.00 AM 164 .

TASK CONTROL  CICS Task Control Program ( KCP ) provides functions to synchronize task activities and to gain exclusive control over resources  In other words TASK CONTROL refers to the CICS functions that manage the execution of tasks  It is mainly concerned with the task dispatcher that dispatches the tasks according to priority  CICS automatically provides exclusive control over resources to a task in most of the cases. 165 .. Printer Handling etc. like for TSQ updating. However for certain sharable resources ENQ & DEQ should be used for maintaining integrity.

Y ENQ to gain exclusive control over resource Y DEQ -to release resource on exclusive control SUSPEND ..TASK CONTROL  A few KCP Commands..to suspend a task Y 166 .

INTERCOMMUNICATION SESSION # 10 167 .

INTER COMMUNICATION MULTI REGION OPERATION & INTER SYSTEM COMMUNICATION OBJECTIVES  To get an introduction on MRO and ISC 168 .

Y Multi Region Operation ( MRO ) Y Inter System Communication ( ISC ) 169 .INTER COMMUNICATION  CICS Inter Communication is a concept of communicating between various Sub-Systems and CICS in a MultiSystem environment  The term ‘Various Sub-Systems’ include Y other CICS regions in the same processor Y CICS region in other processors and even Y non-CICS regions  Inter Communication can be achieved in two ways...

there could be more than one CICS region. on the same processor Communication between CICS regions in the same environment under the same processor is termed as MRO  170 .MULTI REGION OPERATION (MRO)  In any system. each running independently under same OS say MVS/XA.

Accounting database MRO Example Multiple Departmental System Processor 1 Accounting System CICS 1 Inventory System CICS 2 Operating System Sales System CICS 3 Sales database 171 Inventory database .

other system(s) can support the functions of the failed system Y Performance Enhancement System performance can be tuned independently for each system based on the relative requirements and priority thus improving the overall efficiency Continued . the owner can have total control over his system Y Reliability Even if one system fails.MULTI REGION OPERATION (MRO)  ADVANTAGES Y Functional Independence Since operation of the CICS systems are independent of each other... 172 .

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

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

Inter System Communication (ISC)  CICS in one processor can communicate with CICS in other processor or other non-CICS systems regardless of where they are physically located  ICS requires sophisticated communication network based on System Network Architecture (SNA) which define protocol standards and data formats of communication by different hardware & software in multi-system environment ( SNA is protocol for IBM Mainframes to talk to other machines ) 175 .

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

Accounting database Typical example ISC Distributed Corporate System Operating System Accounting System CICS CITY 1 Operating System Sales System CICS Processor 2 Processor 1 Operating System Inventory System CICS Processor 3 SNA CITY 2 Sales database 177 CITY 3 Inventory database .

SESSION # 11 178 .

DEBUGGING CICS EXECUTION DIAGNOSTIC FACILITY ( CEDF ) OBJECTIVES  To know more about diagnostic facilities in CICS  To learn to use CEDF 179 .

DEBUGGING UTILITIES  Other CICS supplied debugging utilities include Y Transaction Dump Y Command Level Interpreter Y Temporary Storage Browse ( CECI ) ( CEBR ) Y Master Terminal Transaction ( CEMT ) Y Dynamic File Open / Close ( DFOC ) 180 .

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

EFFICIENT CICS PROGRAMMING SESSION # 12 182 .

EFFICIENT CICS PROGRAMMING OBJECTIVES  To get an introduction to develope efficient CICS applications 183 .

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

EFFICIENT CICS PROGRAMMING  Considerations to be made while designing an ON .LINE application (cont. reliability and maintainability 185 .) Y Y Y User Friendliness System performance and Resource usage System security.

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

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

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

$39.20 ! $   &  . 0/3.

.

$50.5 %%  .108548943390.

.

$50..:0 .108$0 % .

.

0909 # &!# &! .39.

.

:80 ! &%  5.*.:80 ...48$:-/.8434110/ !  5.*.

.

99310/8   .471472.

  &$%%.

.

#%.

#  &#$:2-07*41* .08 %%# .:7703..997 .997 .

.

7.$50..108..90789.84110/   .

%%#&%$  $!.

!# %.

&!# % .

.

108:94 85.$50.

!7490.90/.

&357490.90/10/    .

.

08.38079:784739.:7847548943  #%.

 #.

# .

.

79.

472..

73903894110/  & ..

.

:207.10/950  $% .

.

0/$09 %   % .

.

-0   .!090.9.

9.2 1%8  34/.8 97. %% %    %3/.9/..9.9.382990/94905747.10/ 9039.908090790/.897.10/824/10/ 47349 190%8 147.382990/1479.9 10/  .

250$4/3    !$%$%!!   &%  %# # #$%    %# !$   % ! ! $   % % % %! $   % ! $   % % %#  ! $   % %%# ! !      $%!.$.

.

5809/0.3/.7.943   ..90803/41..

$$$% $# $ $! ! !$% !$%   $  ! !$ ! &%!&%% $%#  .

$$$ !  $ $! ! !$% !$%  !    !$ ! &%!&%% $%#  .

$$$ %  $ $! ! !$% !$%  %    $  ! &%!&%% $%#  .

  ## #$%!$  ! 470570/423.543 908.308.10/8.089035:9 '#" #0.3907747 472.2.7003 '!$ $041902.:78039070834/.390 8.0422.5850.7079.7003    .0.382990/-:990:807:808.:90/94:9.9.3/00.0..3/ 70.94-0 97.4.

 ! $% & #&$ $  # $% #$%   ! .

.

% &$&% #$! $$  !$ .

.

$   ##  !$! .

.

&$#! !# &#'$    .

947893  .3.08.. 478:3/07$47%$  %88.22078.$#% % $  $ 8.908$2.9.7003843 %0723.0%$%1.70700.70.9.9438  70.0841:83$ 3907.574/:...8 $.9/01394341$.74.748 !74.39...98:550/-  /.//943.9.4/38802-072.33907.4/0  $45747.:99080 !  % #1:3.9..7003/0139438419.3//70..:942.0.0/174290 974:-0841.0307../083907./088420.//943.9 !74.

!%  $$$   .

!% $ #$!  %   # %     .

.422. 70854380.943 5747.5574.9.0790  % .4/0.10/3.:80982.2.5747.9:70/ "  .42509434190.0.08..422.3.4/03...00/9490309574.04.5574.08905747.#$! !%  %0#$!45943.-.4/0 903574.3/ 981:3...990.3/ %0.0883 %8.3/ $5.55.2 1 90#$!459438850..943882...8. -0.3-0850.22470 897:.98..422.10/3.39.79490709:73./.3.3$.

42/943  ..9070854380.:943 .4250943 W 30.0.05943.422..1:47/-3.943.3/  0130.0$0.$ .4/0390 7085438010/9#$!  0708 W  #1473472.090#$!459439907085438010/3.%01443890574.3/  1907.422..8907085438010/  !.3/00.0/:7094:8090#$!459433.422..710/ $   ! 390473 $947.

.250  # $% #$%  $ #% !$   ! !# &#'$  $$ #  ***** % *** #$ #$! $ #%    $ #% #$!  #  %  # !# $ #% #$! ##  % ## !#  % # ## !#  # !# ## !#  .

05943.43974-05.3/00.880/94 ## !# W 1..##803.4/04190..43/943803.422.2 9014434.880/94 # !# W 1.:7 W 990..422.:943708:9 W 190$.349070.42509434190$.880/94# ## !#  .3/.09070854380.:94341985747.43974-0 5.4:39070/ .43974-0 5. .4:39070/ .:739000.422.42509083472.3/ 90$ #%  10/.

0594343/943 # &% .0594343/943 # &%    . %   $ %  .0594343/943 # &% .

! $ %  ## #  ## #% ## ## #%   $#' %  %  %     ## #%  ## #%  .

.422.3/8.20 . # %   %0 # % . 03.3/.422..94394-0 9.:783905747.943144390..3/.43/9434.43/943 %0706:089-90 # % .:80834..43974 -05.880/4394903897:.43/943  .03190850.2 %0.422.4:39070/900.10/./ :39908:-806:039 % 147908.05943..

43/943 9902489  43.3/   .908.40/3908.43/943 .05943.30.20.422.70. $ # %  ...$39.43/943 3/.43/943   %0 .43/9438.

43974 -05.43/943-03470/ ..3/90.190790#'.3/  .902039.! $ # %  ##   $#' % ******* % ****   W 99000.422.059434.:9434190#'.3/ 1## 0.880/949089.422.:78 90.

9903943/ # &% . $ .:90.8:80/9#'.9903943/ # &%    .422.0570880/ .9903943/ # &% .74:930/0503/343.3/ $39.  &80/9400.

! $ !  # &% !  # &% %#  # # &%  #   # &%    .

 ..:943070..-3472.  %0.90723.43/94384190$.422.90723.2 .-3472..3/94.943   .059890.5747.3/00.3/3907.0598.422.-3472.8 3907.90  .9.30914790574.90.3 .943  3.3/8:80/943907.059..3.422..0883  %0 % .04770.9.

.00/ 706:089  .4:8.88. $ !# # 3.3.4397494.247.3.9090570.-0   #$%(   !# #478:80/945.090570..7.$39. 5.0883 8:80/94.7.9.5 70850..5747.-80/ 706:089 #$%8:80/9470..0 147574.9.4:8089.20   .

!  # $% #$%  $ !$   ! $ % $ %!  $ %!   !# &#'$   $   # &%     # &%  '  &# % $ %  ' %$%  % $ %  '% $  $$ #  $ % % $        .

:7 W 1.$    $      :739000..:78 9-03907.880/94 # &% W 990.34.9.43974-05.908 4.422.0590/-90 .2 901443.3/ ..3/..:94341905747.42509434190.

00/ W 990.90/9:807..4/0   .3.3/ 909.8-0 90723.422.42509434190.422..3/ 90570.4:8706:089-0.

%#$%%"&&$ $$$   .

9.":0:0  %40.33974/:.38039.7394:80%":0:08  .%#$%%"&& %'$  %409.94343%7.

.48$97. 7043/.38039.38039.8%7...0/%7./.3-0 :80/.38039. ":0:0 %" 47%7.38039.90/-%7..8098.70 :80/-$1473907 7043.9.9.08 .9..38039.3/397.0893.94394/0.84.80907.2 %! .0/.99080 108  %7..9.943 .08. 97.38107  %881.9.43974!747.%#$%% %#   $06:039.9.9.9.38.

!47 .

!108 -:9349-49 4393:0/  .

24/0 .94343974%..943474907 80...908 9.0/0893.943  ...47/8..83...:8070.943 / ./.9433/..38.9.%#$%% %#   %09072":0:08:80/-0.-0 %  .90/94490797.7094-07089070/3 0893.0/ 0893.70...%"8/03910/- .0880/3 806:039.907/039107.92489419039080 806:039.70/70.7..6:0:0  %0%072/0893.

3/.%#$%% %#  %50841%":0:08  %#!#%% %" 74:541806:039.70 574/:.47/8.0/ 574..0880/-8.20.70.

10390$7043.38.39.79943%":0:08.2207.5.943893908.47/1107039 %7.7089470/3430 '$58.8 5705.3/2.20$7043 397.30/ -$ 4393:0/  ..70/-889025747..

0/174290":0:0  $42095.074.920806:039.0430 70..439 742.47/8:80/.243$%7.7024...47/ 84..9438 !2  %" 52  #05479 :942.0#4:93 088./ 4:96:0:0 0 3./70..55.55./.9.0897:. %"8..38.0 70..5.9.9435747.839.943841397.0.%#$%% %#   %#!#%% %" .9.893  .943 % 088.%.0#0..22078543941.79943%":0:08 39071.

79943%" 70.70 574.39071.47/8.70....38.%#$%% %#  %50841%":0:08  . .439  %#!#%% %" 74:541806:039.943841/1107039$70438 .4-8 %$ !09.3/.38.284:98/090$7043  0 -.9.70.!.0880/-$97.47/8.90/-5747.943 4393:0/  .3/49078890284:98/0$7043 335:997.0 -0900397.70 .

439 3 :95:997.47/8.3/.70.!.9432.70 .0880/- 490788902847.805.%#$%% %#   %#!#%% %" .38...3/90 /0893./8.70574.9058.10.%"8..34907$7043 .-0.79943%" 70.90/-$97.943.7.

50.9.

573907.

549907 %070147014798:80 0.943 4393:0/  .%7..102:89-045030/- 90$7043 03:80/-.38..

%#$%% %#   %#!#%% %" .439 !9%/0907230890 503.

.9:8 419010 08.3.48089.84-0 5030/.

9..2.0$808843 4393:0/  .943 %  /:73...38.8907%0723.%7. 974:.480//3.3.

94384197.439  $42095.9.79943%"8 39071..%#$%% %#   %#!#%% %" .9. 47%$ 47! 4-8 $55 52 %" 0 . 47%$ 47! 4-8 ...9..094.55..01742.!.9.4- %" 0 $55 52   .4- 39071.

!.%#$%% %#   %"422.79943%" 49'.3/8147%7.20.47/1742"147-499508 %"% %4/0090.422.9.1 42990/908.3/889.!.3/8 #%"% 790870.79943%"  %390.47/3"147-499508 #"% #0.38039.422./70./14797.3//01.3397.:9894%$"  .

%#$%% %#   #%"%$39.70. . .9.033% 3485. $#%"% "&& 3.:0 (    !% $ "## ##  $! %039734914:3/14790 " 039850.20 #  /.9079.3 2. % /...2:2039.9.0..-03%"  ..10/870..

/390 "  ..9.70. .10/8349908.20 % /.10/3% 34247090289470.89.:0 ( %    !% $ "## ## "# %039734914:3/14790 " 039850.9850. /.20 .%#$%% %#   #"%$39.9. . $#"% "&& 3.

20    !% $ "## %039734914:3/14790 "  . $%"% "&& 3.%#$%% %#   %"%$39.

71:3.%":0:08  0893.%":0:08.3/507147235:9.94341.2:80898%147 /03913.$%%  %# %  %+8572.94343974!747.94389470890743974 31472.

9438.748394 %147-49950841%":0:08 5..7..70/0130/:838802-072.209078  459438147-49950886:90/1107039  .389902  %039708.4:95:9 4507.

47/83.79943%" 70....1.70..79.!.9.09439.5.0 90889029707890 97. 5.90/..943 4393:0/  .08.  03903:2-074170.90..79  %0%7.&% %%$%%  %  % 8.:942.3397.38.38.38.9974:.3 -039..943.79.3490797.:.:. !.38 /8/0130/390%03974190397..797.79943%"9343 07497070.9439489.

790/9457399070.&% %%$%%  %  55.90/3..38...79943 .0..943.9.%" 397.:2:.38..08.770.3490797.0894.3 088.079..!.3/.079.9432.3/.397070.9438 088.3 -089.47/8  .47/8.30.943 #05479!739 $2.3490797..790/9474:9090 2088.90/  ..-089.:2:.3-0./1107039/0893.3-0.  .0$9..9..0 8.

%! ##$% #"&&$ $$$   .

841%$"8 %$"8":0:04170.2 %$! 574.47/889470/ .9.7.2.90789.%! ##$% # %#  %02547.30397083.0548943.0":0:08 %$"  .3 %02547.-08 %$"8/03910/-":0:0  94-908  70.439749..9./08 .0/902 :2-07  4393:0/  .-99489470 70970.29.7$947. 94:9.90/ /3.55.0/.7$947..8.043974!747..47/ 93":0:08/03910/-70.9435747..70.

9..439/ 55.88../20247 1.9435747.089470/702.84 90.9./ &5/./806:039.:.0415.38947.088-0:3903970%$"8 /0090/ #0.047.3.35:754808 #0...47/70..47/8.#%#$%$ %$"$ .3-0#0..47/843.0880/-.9.3-0#070.38...94339..9147.-07990332.78947.9$7043 4393:0/  .0 3$ 770850.089470/.90/ %$"2.5.3 %7.3-0.7.28:80%$"8...

4390398.883-09003%7.9.8041%"8 %5...38.9438  #05479!7393 95..4305779083%$".5.3/4907 57398705479:8398%$"  4393:0/   .:78903.9438  ..84.70489 34 ...55.3%" 3574-0281.04170970.3.02470011.003.0399.#%#$%$ %$"$ .83...7..439/ %$"832.38947.

/70.38039.0":0:0  .9.3/8147%7.%$"' $ #%"%$ %4790 #079070.422.47/1742%$" %"%$ %4/0090%$" %3.7$947.:98%$ %02547.142990/01.47/3%$" #"%$ %4#0.

 ' % %$"   439/   . # $% #$%   %$" "  %$" " '  %$" " %#  %$" " !!  %$" " &  %$" %  %$"   %$"   %$"   %$" % ! !'&  !  ! ! !  !  !$   ! !$   ! !# &#'$   $%#&%"  '%#% %$" " %#  '  % %$" " !!  '% %$" " & /9%$"/.9.

%$"-0.90/9"9999  070999989090723.! 439/ #%"&& $#%" "&& %$" " #  %$" % % %$"  % %$" %      1.70./  .%$"998"/408349089 .

%#' %$ %#  $$$   .

.%#' %#  %$ %#  %'$  %4342470433907.82.43974.90/1:3.3/%20 70.3.9438  %434247043%.02039  .

.3//.3/0990920.9438  8:.  %070.3/8..2..70850..1..2 ! 574..:77039/.90 920 %4192047/070/9./08 .7094192070.9438  .43974!747.9435747.%#' %#   $3907.90/1:3..422.-0147$ !94 .901:3.55...8.88 09.

9472.574.422.10/920.89470/-$%#% .0/.941.943 ! $% 94706:0893491..039944.8 %'% 94.3/1479097.3.90 %20  940.43974.00110.38..79.088341.943  94.9.9147.%7...4:8 3907.30.:7 $%#% 9489.94303 850.80570/ #%#' 9470970.38.90 %20  #%% 94800..%#' %#   10!422.3/  ..941570.3/8 $% 94706:089:77039..422.9.

%#' %#  '# &$%.

% #%$ .

.

.

 %.

%$!.

% # # %.

%$!  .

9  .  %  &%  % #  %  390.9089700.8041$ 0.783 1472.

3/ - .38.39.:942.3-039..422.8  $$%#% %#   %# %%%%  %       ..94339.94339.0/:0/920473907.943 $% $.. .$97..90/.0/:0/%7.9438.98.943 $% 8.55.0/:0/%7.9434190$%#%.%#' %#   $..3 25479..9.38..38.

.

9   .90/.-039.

9.9.94389483..94389.079.74309..908.077084:7.3339079 0147%$":5/.2 ! 574.808 40.92.08909.8324894190./08 1:3.0894.574.93 !73907 .07 7084:7.09000.08" "84:/-0:80/147 2.39.9.843974!747..3.079.9.3 8.7.3..07147.0.3/309.9 /85./080.8.-07084:7.88.30.47/39457479  $.0 .:942..43.%$ %#   $%.3/94.:8.0730/9909.9.  .8/85.439744.:8.:943419.439744.88  982.08  3490747/8%$ %#  7010789490$ 1:3.

9.807084:7.%$ %#   10!422.439744.3/8 " 94.:8.8  .0430.0 94700.:8.0 .30.0.43974 " $&$! 948:8503/.07 7084:7.

%# &%  $$$   .

33974/:.3/$  .%# &%  &%#  !#%  %#$$% &%  %'$  %409.94343# .

93 -09003.3/0.943 $  ..088478..20574.422:3.05941.943 #  3907$8902422:3.8 :9#043 507.:9 $890203.3-0...943..9438.0/394..0.3/$3.43.%# &%   $3907422:3.74:8$:- $89028 3..:/0 4907$704383908.08847 $704334907574.03 343 $70438  3907422:3.74:8$:- $89028..7432039  %09072 '.

&%#  !#%  #  3.388902 9070.7:3333/0503/039:3/07 8.20 $8..4:/-024709.'$.3430 $7043 0.

2003.088478 90720/.20574.08847 422:3.8#   .20574.7432039:3/07908. 43908.943-09003$70438390 8..

08 /.792039..80  3.4:393 $8902$ 3.4:393 /.250 :95005.-.08 $8902$ $..9.9.93$8902 .80 .03947 $8902$ $.08847 507..80 # .-.9.-.$8902 !74.03947 /.

70 3/0503/039410.&%#  !#%  #  '%$ :3.07888902 #0.439744.031430889021.943.4907 904307.0..0 706:7020398...011.3. 4393:0/  ..8 490788902 8 ..390 4.0 $3.9434190$889028.88902-.3.0 949.0/88902 !071472.80/439070.3-09:30/3/0503/039 1470.3 8:55479901:3.02039 $89025071472.-9 .3/0503/03.03.943841901..3.3..9.3/574799:82574.07.04507.03.

70/-.:79 $89028-033/0503/039 70./:.4508 !740.&%#  !#%  #  '%$ .0450/ 3/.0/ 43#0/:3/.9.3-00../0/.0.3//0.9!..09070.98. 4393:0/  .90889028849070 .439 $0.70/11070398890285708039 90 5740.83 $3.70342:950.20/.39 $.88.90780.:798 .8/.

.07.0#  83498:9.08847 .0/ 2470 850.0397.33380..9438 $5.08 3# .&%#  !#%  #  8.55./.3&3 !74.-0147/897-:90/.411..4507.1.94382:89-0.39.08.3/03.

574.088478  .

422:3.80/43$890209477.422:3.208949..08847474907343 $88902870.9841 . /013057494...3//.308  .7/08841 07090.489.90.943 $  $3430574...943-/1107039.7/.944907 2.9:70 $ .90/  $706:70884589.7/8...317.08847.90/.703 2:9 8890203.422:3.4.3.94330947 -.9.7432039 $ 857494.70 8419.3907$8902422:3.3/.7058.909$3 4907574...4147.1472.

.3./89.397084:7..0 !8.08.708.045.7/.70/974: $ .9.70.8 %7.703.943 $  '%$ 0.00.3/0.3907$8902422:3.4250/897-:90/889028 70.4189.385..

70 8419.385.$419.9..7/.7090702490889028089343  .$ 9897.0 %44.703/0503/03.703943.

4:393 /.-.08847 % 507.80 %5.08847 507.9.08 $8902$ !74..4:393 $8902$ !74.93$8902 $ 3.0.80 .-.9..93$8902 .08 /.250$ 897-:90/47547.03947 $8902$ !74..90$8902 507.08847 %  $.80  % 3.-.03947 /..93$8902 $.9.

$$$   .

9083$  %40.7394:80  .3489.-4:9/.& $&%  $%%  %'$  %4342470..1.

07480  # .943:25 422..7$947..8907%0723.943 % 3.:/0 %7.03907570907 %02547.3/0.38.0 503.38.%7.&&%%$  907$8:550//0-:3:99083.2.

480    .

9433.9:8.439 9097.90/-039073%7.994/0-: $.30/ 9.38.94383.3/2.9.943-00.9.3//85.8.38.70038 .908.7432039  :3.1..317..:77039 570.00/.38 /.:0841 5747..9 /110703954398 9.3/3472.3/ 309 .3489..943.$8:550//.89089..70.3.354394139077:5943 31472.553 .3/.3-0708:20/  8.4:8..2+8$.3/ 8:8503/3..:93..894/0-:0/  .943841 2...2003.32470.-4:9 90..55.&%  $%%   8..943 /. 1:3.9438..97.3-0.55.3-04-9.35:.35439.2.

%$!# # $$$   .

94394/0..039 $.9438  .33974/:.%$!# # %'$  %409.0450011.55.

0883#06:7020398 $.943894-02./00/0833.943 !74.7003706:7020398 3 3057393706:7020398 4393:0/  .55.%$!# #  438/07..3  .

-9.3  ./00/0833.943894-02.%$!# #  438/07.55.3/2.0 $890280.-9  .:79 70.943 .3.3/#084:7..3.0.39.439 &807703/3088 $89025071472.0:8.

9437.0 3890.3/ &80'$1083890..-083$80.3/ .9438  %$"945943   #459439#%&# %.3/ "$108 4393:0/  ./0942574.907:83 %./41$  % %%&:80  31472./41 $.422.422.3.%$!# #  438/07.7.943894-02.3/8 0130.0 $8902!071472.

439  3890./41&%!5./41:83  97.%$!# #  438/07.08 3890..95.5574.943894-02.79943%":80'$.!.3/#472.0 $8902!071472.30./0942574.3.0 .58.:80 &%!2.

43974.$$108  397.078.80/43901:3..79943%":80%$"945943 &80!80:/443.88443.85488-0 4/:.943 700.!.94390.943.28-.:39 4393:0/  .6:70/7084:7.08 9&$' ..705747.36:0 &80232:2706:70/$80.

4390300700.%$!# #  438/07..7394:80#045943    .4/:9087483 0./0942574.3.11.0 .097.075488-0 0-7483108 .0 $8902!071472.439  #0/:.943894-02.

Sign up to vote on this title
UsefulNot useful