Mainframe Path Start learning free
Core6 min readLesson 1 of 4

What CICS is and how work arrives

CICS is a long-running program that hosts your programs. It handles the terminal, the security check, the storage, the database connection and the recovery — so your program can be small and do one thing.

The vocabulary, in order

TermMeaning
RegionOne running CICS address space. A site has many: production, test, and often separate ones for terminal handling and application logic.
TransactionA four-character ID that names a unit of work, e.g. PAY1
ProgramThe load module the transaction runs
TaskOne execution of a transaction for one user — the thing that actually runs
Map / BMSA screen definition: where fields sit and how they behave
CEDA / CEMTThe definition and master-terminal transactions used to configure and control a region
From keystroke to answer
User types PAY1Terminal sends the transaction ID
CICSLooks up the transaction, checks security
Task startsProgram loaded, storage acquired
Your programReads data, builds the screen
Task endsScreen sent, resources released

The key constraint: everything is shared

Hundreds of users run tasks in the same region at the same time. A single program that loops, waits, or holds a resource degrades the service for everyone in that region. This one fact explains every rule in the CICS programming model.

Common mistakes

Writing CICS programs like batch programs

Reading a file end to end online will hold the region and time out. Online reads one record and returns.

Forgetting NEWCOPY after a compile

CICS keeps the loaded copy in storage. Your new module is in the library and not in use until you tell CICS to fetch it.

Using STOP RUN

It ends the task abnormally from CICS's point of view. Always EXEC CICS RETURN.

What you will see at work

Key terms

Check your understanding.
Take this lesson's quiz and save your progress. Free.

Take the lesson quiz
Pseudo-conversational programming →