Solved

How CICS deals with online user requests ?

Posted on 2011-02-15
5
628 Views
Last Modified: 2012-05-11
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
0
Comment
Question by:Eduardo Fuerte
  • 2
  • 2
5 Comments
 
LVL 68

Accepted Solution

by:
woolmilkporc earned 500 total points
ID: 34896854
Hi,

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:
https://publib.boulder.ibm.com/infocenter/cicsts/v4r1/index.jsp

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

wmp


0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 34897201
>> 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 ...)




 
0
 

Author Comment

by:Eduardo Fuerte
ID: 34898758
Hello

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

0
 
LVL 57

Expert Comment

by:giltjr
ID: 34899434
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.
0
 

Author Closing Comment

by:Eduardo Fuerte
ID: 34906236
Now it's up to me to deepen the concepts you've pointed ! but it's a very good beggining ....
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
COBOL vs C# 8 1,039
programmer/analyst 10 627
Why am I getting this DB2 error? "DSNU034I    DSNUBCKB - DATA SET TYPE INVALID FOR DDNAME SYSTEMPL" 9 1,320
IBM Power 590 7 451
I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
When we talk about DevOps toolchains, I sometimes wonder how many people really get what we’re talking about. I don’t know if it’s just semantics or tone or something else, but sometimes I think it just sounds like buzzword sausage. So it’s always …
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

948 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now