Archive for May, 2008

What is special about this place?

May 28, 2008 14 comments

Here is a trivia question for you, what is special about this building?

What happened here?

If you think you know what significant (CICS related) event went on in this building, add a comment. The first one to guess correctly wins … a “I ♥ CICS” sticker.

Categories: CICS, IBM, trivia

CICSPlex SM traces

May 27, 2008 3 comments

To an experienced CICS user, CICSPlex SM traces can seem weird compared to ‘vanilla’ CICS traces, so I am going to try and explain what is going on with them.

First a little bit of history

When CICSPlex SM was first introduced it was a separately orderable product – it was not part of the CICS TS package (the CICS TS package did not exist!). Because of this, the CICSPlex SM developers had to play by the rules (to keep the IBM lawyers happy), in that it had to use only published CICS interfaces, e.g. using the standard CICS APIs/SPIs and only programming interfaces that could be determined from the publicly available CICS documentation.

As the interface into CICS tracing is EXEC CICS ENTER TRACENUM, that is what CICSPlex SM uses to write trace records. This is also why CICSPlex SM trace records appear to CICS as so called ‘user’ trace records.

Read more…

Categories: CICSPlex SM, debug

Nordic Guide

May 23, 2008 Leave a comment

If you are attending the GSE Nordic event in Elsinore, Denmark, next week, I’d be very pleased to met you in person and have a chat about CICS, CICSPlex SM, System z, debugging and support, or anything else that you wanted to talk about. I am giving three presentations – on CICS/VSAM performance, CICS trace and CICSPlex SM, and the latest news in CICS monitoring and statistics. Please come round and say hello if you would like to…  best wishes – Andy

Categories: Uncategorized

CSFE storage violation traps

May 21, 2008 3 comments

Chris’s post about SLIP made me think about CICS storage checking and CSFE. As this blog is supposed to be for people with all levels of CICS skills, I thought I’d try and write something for beginners about CICS storage checking.

Note for Chris: Yes, it is called “storage” not “memory”! 😉

For CICS task lifetime related storage, CICS puts some eyecatchers on the start and end of the buffer that it obtains for you. These are called storage crumple zones. If you look at some CICS storage using a tool like CEDF, you can see these at the bounds of the area obtained for your user storage. For example:

15014A80   000010   E4F0F0F1 F6F8F0F0 838983A2 979385A7   U0016800cicsplex 
15014A90   000020   00000000 00000000 E4F0F0F1 F6F8F0F0   ........U0016800 

In the above example U0016800 is the crumple zone. The U means this is user key storage, (you can also get a C for CICS key storage). The number after the U is the task number that owns the storage. Task number 16800 in this example. Notice that there are two occurrances of the U0016800 string – a leading and a trailing crumple zone. In this example I used EXEC CICS GETMAIN to obtain 8 bytes of storage (CICS rounded it up to 16).

When CICS obtains storage for your task – either directly because you’ve issued an EXEC CICS GETMAIN or indirectly e.g. task working storage – then CICS will setup the storage crumple zones.

When the storage is freed – again either directly because you’ve issued an EXEC CICS FREEMAIN or indirectly e.g. when your task ends, then CICS checks the crumple zones associated with the storage. If the crumple zones are not correct, then a storage violation is detected.

So if my program wrote more than 16 bytes worth of data to the piece of storage above, the trailing crumple zone would be changed. However the overwrite could occur in my program at any time, yet the error might only be detected when the task ends.

When CICS does detect the storage violation, the CICS sysprog, will then typically need to try and figure out which CICS application programmer to harass. However in order to do this, the sysprog needs some evidence as to which program is likely to be at fault. The task that suffered the violation might be the victim of another tasks errant program. If the task was long running, and the storage violation was detected at end of task, then there may be a significant amount of code or other tasks that could have run.

This is where the CSFE transaction may be able to help. For reproducable storage violations – typically on a test system – you can use the storage violation trap function of the CSFE.

Using CSFE DEBUG,CHKSTSK=CURRENT will cause similar storage checking that occurs when user storage is freed to occur after every CICS trace record is produced. So as long as your CICS is running with CICS internal trace active and the tasks are invoking CICS functions that cause trace enties to be written, then CSFE has something to work with.

When the storage violation trap is active, then when the CICS trace program writes a trace record to the internal trace table, the CICS storage manager domain will be called to check that the storage crumple zones of the current task are intact. If they are, processing will continue as normal. However if not, the storage violation trap will be tripped, and you will then get a dump.

Then armed with the handy dump and IPCS (or your other favourite dump debugging aid) you can then examine the trace to determine which programs were in control and what commands they were issuing. This should hopefully help narrow down the culprit and identify which program, and possibly even sections of code in the program deserve a close inspection.

There are other CICS facilities e.g. storage protection, transaction isolation, re-entrant program protection and EXEC command storage checking that can help with resolving storage overlays in CICS, so all is not lost if CSFE doesn’t deliver the goods. However when you do have a situation where it can be used, it can be invaluable.

Categories: CICS, CICS101, newbie, skills

Technical authorship

May 19, 2008 Leave a comment

An area that I have been very active in over the past 15 years or so has been technical authorship. I’ve done a lot of writing about CICS, transaction processing, debugging, and problem determination. I’ve found that this has been an effective way for me to communicate with CICS customers, and with other IBMers too. It has also helped me enormously because I have had to learn about an area before I can go ahead and write about it myself, so the act of writing has forced me to try and master the subject matter beforehand 🙂 As well as working with the IBM ITSO team on redbooks and education classes, I have also been published in a number of external journals and publications. I’d be interested in knowing what experiences other authors have had in writing and publishing about CICS, CICSPlex SM, transaction processing or IBM System z in general. I know my fellow blogger Phyllis has been very active with her writing over the years… what about anyone else out there?

Categories: CICS, CICSPlex SM, IBM, skills

Running CICS?

May 15, 2008 1 comment

OK, not Running CICS, really, but CICS runners. On Saturday the 17th of May, two CICS managers (one development, one test), a CICS developer and two CICS testers will be running 50 miles in support of MacMillan Cancer Support. For details see here.

Here are a few facts about the CICS runners:

  • One of them will be spending the entire time trying to figure out how the GPS on their phone works.
  • One will be quietly sobbing to themselves whenever they have to run past a pub without actually going in.
  • One has promised us that they won’t be wearing shorts that are too tight.
  • One we are secretly hoping does wear tight shorts.
  • One will disappoint us if they do actually manage to wear socks that match

Seriously though folks, good luck for the run!

Categories: CICS

CICS TS in your SOA – Issue 3

May 13, 2008 1 comment

An excellent resource with links about CICS in the shape of redbooks, external articles, reports, whitepapers, brochures, podcasts, datasheets and more! To quote a slide from the presentation:

“This presentation provides a ‘portal’ to more information on the CICS ecosystem. All the items in this presentation have hyperlinks that are active in ‘Slide Show’ mode. This will be an evolving document, with refreshes distributed every few months. To receive these refreshes, please just email :

Get the presentation here: cics-ts-in-your-soa-links-issue-3.ppt

Update: Fixed some bad grammar.

Categories: CICS TS, links, presentation
%d bloggers like this: