Solved

How CICS deals with online user requests ?

Posted on 2011-02-15
5
633 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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Originally, this post was published on Monitis Blog, you can check it here . Websites are getting bigger and more complicated by the day. Video, images and custom fonts are all great for showcasing your product or service. But the price to pay in…
Recently, Microsoft released a best-practice guide for securing Active Directory. It's a whopping 300+ pages long. Those of us tasked with securing our company’s databases and systems would, ideally, have time to devote to learning the ins and outs…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

726 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