Many mainframe students, recently I asked, what is reentrant program in CICS?. Many not sure exactly what it is. Since CICS is such a important online program, knowing about is good idea.
I am just giving detailed description for your help. A program, which is called always in initial state (all the variable which were defined earlier will not change) is known as Quasi re-entrant program.
Second important point is, a QR program can be used concurrently by more than one task, but, actual execution is only one task.
A quasi-reentrant program is a program that is in a consistent state when control is passed to it, both on entry, and before and after each EXEC CICS command.
How does CICS know a program is re-entrant?
It is to be defined in TCB-Transaction Control Block with CONCURRENCY yes.
- All the tasks which are calling a QR program, will have their own copy of working storage in DSA (Dynamic storage area).
- All Global resources present in CICS CWA (common work area) can be updated by the QR program. But, such resources are locked exclusively for QR program, by the concept of Re-entrant – This applies when these tasks are present in a common QR TCB
- It will not provide exclusive lock on Global resources, when the tasks are defined in other TCBs