Solved

How CICS deals with online user requests ?

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

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

In this article, I will show you HOW TO: Install VMware Tools for Windows on a VMware Windows virtual machine on a VMware vSphere Hypervisor 6.5 (ESXi 6.5) Host Server, using the VMware Host Client. The virtual machine has Windows Server 2016 instal…
In this article, I show you step by step with screenshots to assist you - HOW TO: Deploy and Install the VMware vCenter Server Appliance 6.5 (VCSA 6.5), with some helpful tips along the way.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

757 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