Module 2: CICS Architecture
CICS Components
CICS is built from three big components: the nucleus (control programs), the resource tables, and your application programs. Knowing each part helps you find where a problem lives.
The three big components
- CICS nucleus: the core control programs (domains) that are always in storage. The program DFHNUC is the heart of CICS.
- Resource tables: definitions that describe every transaction, program, file, terminal and queue CICS knows about.
- Application programs: the programs you write. They are loaded on demand and use EXEC CICS commands to ask the nucleus for services.
- Your program is a guest: it runs inside the region and borrows services from the nucleus. It never runs alone.
CICS control programs (domains)
- Task Control (DFHKCP): creates and manages tasks - the transaction manager.
- Program Control (DFHPCP): loads programs and handles LINK, XCTL, LOAD and RETURN.
- Terminal Control (DFHTCP): talks to terminals - sends screens and reads input.
- File Control (DFHFC): reads and updates VSAM and BDAM files.
- Storage Manager (DFHSM): GETMAIN and FREEMAIN storage services.
- Transient Data (DFHTDP) and Temporary Storage (DFHTSP): queue services.
- Interval Control (DFHICP): START command and time-based work.
- Journal Control, Recovery Manager, Dump and Trace: logging, backout and problem diagnosis.
CICS tables (resource definitions)
- PCT (Program Control Table): maps each transaction id (TRANSID) to the first program to run.
- PPT (Processing Program Table): describes every program and map - name, language, where it is loaded from.
- FCT (File Control Table): describes every file - dataset name, VSAM type, open options.
- TCT (Terminal Control Table): describes every terminal and its characteristics.
- DCT (Destination Control Table): defines transient data queues - intrapartition, extrapartition and indirect.
- TST (Temporary Storage Table): defines temporary storage queue characteristics.
- Modern CICS defines most of these with RDO (Resource Definition Online) instead of assembled tables, but the same names are still used.
How the components work together
- You type a TRANSID. Terminal Control gets it. Task Control looks up the TRANSID in the PCT and attaches a task.
- Program Control looks up the program in the PPT and loads it from a DFHRPL library.
- Your program issues EXEC CICS READ. File Control looks up the file in the FCT and reads the VSAM record.
- When the program ends, the task is detached and all components release their resources.
Example - checking components with CEMT
- CEMT is the CICS-supplied transaction for asking CICS about itself. Type these on a CICS terminal.
- CEMT INQUIRE PROGRAM(MYPROG) CEMT INQUIRE TRANSACTION(MYTR) CEMT INQUIRE FILE(CUSTFILE)
- INQUIRE PROGRAM shows whether your program is loaded, its language and its use count.
- INQUIRE TRANSACTION shows the program the TRANSID points to. INQUIRE FILE shows whether the file is open and enabled.
