Introduction to CICS >>
 

What is mean by re-enterant program
A Re-entrant program is one which does not modify itself so that it can reenter into itself and continue processing after an interruption by the operating system. Hence a non-reentrant program cannot be used in a Muti-threading environment.

The reentrant programs are used in online systems, and they make it possible for the operating system to establish a multithreading environment which most online systems require.

After writing source in CICS what are the next steps?
1. Translator – converts all CICS commands to COBOL calls
2. COBOL compiler
3. Link editor

Physical Map
Are assembly language programs created and placed in a load library. Physical maps control screen alignment plus the sending and receiving of constants and data to and from terminal.

Symbolic Map
Is to store named variables data in a COBOL program. Maps will be placed at source library.

HANDLE ERROR/NO HANDLE /IGNORE conditions
A HANDLE CONDITION command creates a go-to environment. An IGNORE command does not create a go-to environment; instead it gives control back to the next sequential instruction following the command causing the condition.

Pseudo-conversational pgms
The programming technique in which the task will not wait for the end-user replies on the terminal. Terminating the task every time the application needs a response from the user and specifying the next transaction to be started when the end user presses any attention key.

If a program enters into converstion with terminal-user, it terminate the task after sending a message with a linkage for next task. When user completes response, next task is initiated automatically by CICS. This task receives the message from the terminal and process it.

Conversational
Online program that reads a second input from the terminal (waits for response to do additional process holds resources during 'wait')

A conversational program is logically and physically divided into separate programs after sending a message and before receiving the message. For each separate program, a unique CICS Transaction-id is assigned. Before terminating the program, each program issues the RETURN command with the next Trans-id which is associated with the next program, unless it is the last return to CICS itself. In this way a series of terminal conversations can be carried out continously.

Advantage: Easy to develop
Disadvantage: Increase a no. of Trans-Id in PCT and program names in PPT

Non-Conversational
Online program that processes one input responds and ends.

EIB area
Some of the information available in EIB area
EIBAID : attention identifier associated with the last input operation
EIBCALEN : length of the commarea passed field
EIBDATE : date
EIBRCODE : the CICS response code returned after the function requested by the task has been completed.
IEBRCODE : 6 bytes codes indicating the response code resulting from the last command issued
EIBTRANID : Transaction identifier of the current task

Task & Transaction
The difference between Task and a Transaction is that while several users may invoke the same transaction, each will given his own task.

What is the COMMAREA (communications area)?
An area used to transfer data between different programs or between subsequent executions of the same program. Needs to be defined in the Linkage Section.

How can you start CICS transaction other than by keying the transaction ID at the terminal?
1. By coding an EXEC CICS START in the application pgm
2. By coding the transid and a trigger level on the DCT table
3. By coding transid in the EXEC CICS RETURN
4. By associating an attention key with the Program Control Table
5. By embedding the TRANSID in the first four positions of a screen sent to the terminal

CICS Components
Data handling component: it is an interface between CICIS and data. VSAM, BDAM, DB2, DL/I, etc.,

Data communication component: it is an interface between CICS and terminals or other systems.TCAM, BTAM, VTAM, BMS, etc.

Application programming services: it is an interface between CICS and the application programs:
command level translator, EDF, CECI, SDF, Trace and Dump.

System services: it is an interface between CICS and the operating system. Program control =>
load, release, storage control => getmain, freemain, Task control.

Monitoring functions: it monitors various event within CICS and provides a series of statistics to be used for system tuning.

Different ways of handling exception in a CICIs program are
1. HANDLE CONDITION
2. IGNORE CONDITION
3. NOHANDLE option
4. RESP option

Different ways of positioning the cursor are
1. Static - code the IC in DFHMDF's ATTRB option
2. Relative - code CURSOR option with a value relative to zero (position 1,1 is zero)
3. Symbolic - move high values or -1 to the field length with symbolic map (and code CURSOR on the SEND command)

To delete a record from VSAM KSDS in CICS
1. READ the record with UPDATE option and give DELETE command without RIDFLD option within same task.
2. DELETE command with RIDFLD option
3. DELETE command with GENERIC option

LINK :
It is used to pass control from an application program at one logical level to an application program at the next lower logical level. If the linked to program is not already in main storage, it will be loaded. When the RETURN command is executed in the linked to program, control is returned to the program initiating the linkage at the next sequential executable instructions.

XCTL :
It is used to transfer control fron one application program to another at the same logical level. The program from which control is transferred is released. If the program to which control is transferred is not already in main storage, it will be loaded.

START :
It is used to start a task, on a local or remote system, at a specified time. The starting task may pass data to the started task, and may also specify a terminal.
The TRANSID, TERMID and FROM options specify the transaction to be executed, the terminal to be used and the data to be used respectively.

HANDLE ABEND
During abnormal termination of a task, to provide a progra-level abend exit facility so that you can include an exit routine of your own that can be executed when required.

It activates or reactivates an abend exit within your application program, you can also use this command to cancel a previously activated exit.

Tips

1. In CICS the ENTER key does not fall under the ANYKEY option. But all other attention identifier keys that are not defined in
HANDLE CONDITION fall under ANYKEY

2. Abend codes
AEID = EOF
AE19 = MAPFAIL
AEIV = LENGERR
AE10 = DUPKEY

3. While reading TSQ the end of the queue is determined by ITEMERR exception condition

4. To browse a TSQ or TDQ we use the transaction CEBR

Home