Mainframes 360
The one stop destination for System Z professionals

Wednesday, October 31, 2012

Introduction to CICS

Q. What is online processing? How does it differ from Batch processing?
The origin of the term Batch-processing dates back to era of Mainframe computers. Typically, when a huge volume of input data is processed in bulk, the input data are stored in a batch of files, and are then processed by software in batches.

Jobs are set up to complete without any manual intervention. The operator specifies (i) The program to run(ii) the input files and (iii) the output files for storing the results. The computer program shall take the set of input files, process the data, and produce a set of output files.  The operator submits(SUB) the job for execution. Depending upon the demand on the computer, the job may take a while to complete. On completion, the job alerts and notifies the operator.

Batch-oriented applications are offline systems. You do not get immediate outputs to the inputs you supply. During execution, there is no interaction between the program and the users.

Batch applications are still critical in many core businesses like banking, insurance, telecom. For example, telephone billing has to be done at the month-end, tallying the bank accounts balance, interest calculation, printing statements has to be done at the End-of-Day. These are high-volume, repetitive tasks which must be completed reliably on-time. They do not require human interaction.

The opposite of batch processing is interactive processing. The user types input on the screen, the program processes the input right-away and displays the output, the user types some more input, the program processes it and you get some more output. The input-Process-output cycle of events continue, until the final solution. The program gives an immediate(quick) response or output to the inputs you supply, on the fly. Such interactive applications are online systems.

A transaction is the basic unit-of-work in online systems. A transaction runs one or more  programs to process the data. A user types the input data on the computer screen, and presses Enter to start the transaction. The transaction invokes one or more programs to process the data right away. Immediately, the output results are displayed on the terminal and the transaction ends.

A single business-transaction(such as enrollment of a customer, retirement of an employee) may involve one or more CICS transactions.
What is CICS? What is CICS Application Programming Interface(API)?
CICS stands for Customer Information Control System. CICS is a giant, robust Transaction Server. CICS can manage large volumes of transactions. CICS allows transactions to run concurrently at the same time serving many online users. CICS offers ACID properties. CICS allows sharing of data and resources. Different CICS services are exposed through a rich set of API(Application programming interface) commands. 

To make Cobol program(s) interactive, we code special CICS API commands in the program. CICS programs are not very different from ordinary Cobol programs.
Q. What are CICS transactions, tasks and programs? What are CICS Tables?
On a PC you double-click a Program, to start it. On CICS you setup a transaction to run application programs. Every transaction is identified by a unique 4-byte code called transaction ID or TRANSID. CICS maintains a table of all the transaction definitions. This table is called the PCT(Program control table). A transaction definition contains the TRANSID and the name of the first program to run. Before you use a transaction, one must define it in the PCT table. PCT ties together the TRANSID the user enters and the program.

CICS also maintains a table of all program definitions. This table is called PPT(Processing program table). A program definition contains the name of the program and the load-library address of the program. Before you use a program, one must define it in the PPT table.

On the CICS Terminal(like a web browser), when the user enters the TRANSID, the CICS software searches the PCT table for information about the transaction. If a TRANSID is found, CICS searches the PPT table for a match on the PROGRAM. CICS loads the program from disk into main storage and runs it. An active, running instance of a transaction is called task. The output results are displayed on screen and the CICS transaction ends.

Q. How to define transactions and programs in the PCT and PPT tables?
Just as you code your own custom CICS programs, IBM supplies some ready-made free CICS programs for doing common day-to-day tasks. For example, you can use the free transaction CEDA, to define a new TRANSID in the PCT Table. Such free transactions shipped by IBM for doing routine tasks are called utility transactions.

CEDA is the utility transaction to DEFINE(add) new entries in the CICS tables. To define a new TRANSID in the PCT table, type CEDA DEFINE TRANSACTION on the CICS terminal.

To define a new PROGRAM in the PPT table, type CEDA DEFINE PROGRAM on the CICS terminal.
CEMT is a utility transaction to INQUIRE or query the entries(rows) in CICS Tables. To find out a TRANSID in PCT, type CEMT INQUIRE TRANSACTION.
To find a PROGRAM in PPT, type CEMT INQUIRE PROGRAM on the CICS terminal.
If a CICS program is modified and compiled, the new copy of the load module has to be loaded into main-storage. CEMT is also used to refresh the load-module. 
CECI is another utility transaction; it is the CICS Command Level Interpreter. To run and test some CICS commands, outside a CICS program(without writing a complete Cobol Program), use the CECI utility. For example, after designing CICS GUI screens, you would like to test them, see how they look, use CECI utility.
Q. What are the other special CICS tables?
CICS maintains special tables like PCT, PPT, FCT, RCT, TST, DCT and several others. CICS maintains a special table for all file definitions called FCT(File Control Table). The FCT table contains the physical name of the dataset like SYSADM.PASSENGER.MASTER and a DD-name like PASSMAST. Before you use a file in a CICS program, you must define it in FCT.
CICS maintains a special table for DB2 plans as well called RCT(Resource Control table). The RCT table ties together the TRANSID, the user enters and the Db2 PLAN of the application program. Before you run CICS applications that access DB2 database, an entry must be added in the RCT.

To many people who are thrown to work at a mainframe computer on their first job, they feel lost. Mainframe people seem to speak a completely different language and that doesn't make life easy. What's more, the books and manuals are incredibly hard to comprehend.

"What on earth is a Mainframe?" is an absolute beginner's guide to mainframe computers. We'll introduce you to the hardware and peripherals. We'll talk about the operating system, the software installed on a mainframe. We'll also talk about the different people who work on a mainframe. In a nutshell, we'll de-mystify the mainframe.

Readers based in India, can buy the e-book for Rs. 50 only or the print book. International readers based in the US and other countries can click here to purchase the e-book.