How CICS deals with online user requests ?

Hi Experts !

Could you please resume how CICS deals with online user requests ?
I'd like only an overview (it doesn't need to be extensive)

Thanks in advance
Eduardo FuerteAsked:
Who is Participating?
woolmilkporcConnect With a Mentor Commented:

The online user's request usually comes from a (3270-) Terminal via some sort of communication method, IBM's proprietary solution being VTAM, based on SNA/SDLC.

This request is presented to CICS via kind of a "virtual terminal", which is handled by CICS' DFHTEP program. Terminal definitions/methods used to be stored in the DFHTCT (Terminal Control Table), but since long there is a RDO (Resource Definition Online) dataset for this and other purposes.

Communication between CICS and DHTEP takes place via "maps", basically the structured content of one terminal page.

A request (as you call it) its initiated by means of a "transaction" code. This code used to be 4 characters in lenght, yet I don't know if something has changed since my old CICS days.
All transaction codes are stored in the RDO dataset (formerly DFHPCT, "Program Control Table"), along with the names of the programs to be started. Information about how to handle these programs is also in the RDO, formerly it's been the DFHPPT ("Processing Program Table").

The programs to be started by CICS act basically as subroutines of the CICS main program "DFHSIP" and are link edited modules (linked with the required library subroutines to ensure proper communication with the main routine, with own subroutines and the mapping support). Despite of being linked modules, these programs cannot be run standalone, due to the lack of physical I/O routines. All physical I/O is handled by CICS.

OK, now CICS loads a program as a subroutine, hands over (pointers to) the terminal I/O area (map) to it, so it can read what the user entered, then passes control to it so it can accomplish its task.
This task usually requires interaction with CICS to get physical I/O handled.
When finished the task will pass a terminal map via CICS back to the physical terminal and return control to CICS.

CICS runs in the z/OS (MVS) "multiprogramming" environment (usually as a "started task", but it can run in a normal region/partition as well), but is itself a "multitasking" capable "transaction monitor" as we old mainframers called it in those days, or a "transaction manager" as they call it today.

Please be aware that the above is actually a very, very simplified outline of what a CICS transaction actually is.
To get a better picture you should indeed consult IBM's documentation:

By the way, "DFH" means "Denver Food Holding", the company for which this software was initially developed.


>> All physical I/O is handled by CICS. <<

To make it clear: CICS itself is not an OS, so it's not capable of running standalone.
In fact, CICS relies on the z/OS or z/VSE supervisor (the "kernel" in Unix) to control it, so you can see it in turn as a subroutine of the "real" OS, which will also handle physical I/O on behalf of CICS.

(OK, left aside that z/OS could itself be a virtual guest OS of z/VM ...)

Eduardo FuerteAuthor Commented:

It looks a complex task.

I've read but I need to read more times (and reflect)  to catch the meaning accurately and then return here.

By the way your outline is pretty good

woolmilkporc's explanation is excellent.

I don't know what your background is, but to put it as simple as possible is CICS is an application server, simular to function as other application servers like: Tomcat, WebSpehere, JBoss, Glassfish, Weblogic, ASP, and so on.

The biggest difference between CICS and those other application servers is that CICS supports more programming languages (Cobol, Assembler, REXX, PL/I, C/C++, and Java just to name a few) and it supports both "smart clients" and dumb terminals.
Eduardo FuerteAuthor Commented:
Now it's up to me to deepen the concepts you've pointed ! but it's a very good beggining ....
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.