Sunday, 10 July 2011

He CICS, he scores!

Sadly, as a title, it only works if you’re in the parts of the world where CICS is pronounced ‘kicks’ and where people play football (and getting the ball in the back of the net is very important!). But wherever you are, I want to talk about IBM’s transaction processing system whose full title is Customer Information Control System and which runs under z/OS and z/VSE.

Basically, CICS allows users to sit at their screen and run transactions against data. It’s reckoned that about 90% of the Fortune 500 companies use CICS for banking, insurance, and various industrial systems. CICS is incredibly resilient with users potentially logging in through browsers, and the application programs they use being written in a wide variety of programming languages. The most recent version is CICS TS 4.2.

CICS first appeared in July 1969 – the year a man first walked on the moon and films such as Midnight Cowboy, Butch Cassidy and the Sundance Kid, and True Grit were nominated for Oscars. The DFH prefix for CICS messages has been apocryphally attributed to stand for the Denver Foot Hills. Development of CICS has been at the Hursley UK site since 1974.

CICS programs were pseudo-conversational – which means that they appeared as if they were conversational, while actually not being. This design meant that valuable resources were not locked waiting for a user to respond to a message. In fact coding to maximize what could be done while using the minimum amount of resources was a trick that COBOL programmers were forced to learn. Programs were multi-threaded, which meant one copy of the code could be used by more than one transaction.

System calls to CICS (eg reading a record) originally required the use of a macro call – hence the name macro-level CICS. During the 1980s we got command-level CICS. Command-level-only CICS came in the 1990s and support for macro-level application programs went.

In terms of programming languages, early users had COBOL and PL/I, and, of course, Assembler. More recently, we’ve seen Enterprise Java Beans (EJB). CICS transactions can now be invoked using an HTTP request, so CICS transactions can act as servers in a POX or REST conversation. JCICS classes allow CICS services  to be called using Java. CICS programs can be Web service providers or requesters.

The new CICS Explorer Eclipse-based graphical tooling interface for CICS provides a modern-looking management interface to CICS.

If you are interested in finding out more about CICS, you’ll be interested in the Virtual CICS user group at You’ll also be very interested to know that there’s a user group meeting on Tuesday 12 July at 10:30 CDT. The meeting uses Citrix GoToMeeting so you don’t need to leave your desk, and will include a presentation by Jeff Geminder, who’s a Principal Consultant with CA. The title of the presentation is: Cross-enterprise application performance monitoring and CICS-specific drill-down: approaches to finding the performance problem needle in the heterogeneous haystack. Jeff says; “In today’s complex multi-platform world, how can businesses stay ahead of the curve by reducing outages and minimizing downtime? Specifically, how can we tell whether CICS is or is not the culprit. In effect how can we find that needle in the heterogeneous haystack and get the right people in the right place at the right time.”

To find out more and to get details about how to register for the webinar, go to

No comments: