Every new release of CICS provides an opportunity for the rabid performance tuner to crack open the Performance Guide to look for new goodies. For my part, I calmly and coolly looked through the CICS Transaction Server 3.2 manual and found these items, which mostly align with the new release's feature.
1. File Control (copy book DFHA17DS)
The migration guide said there are changes, but I'll be durned if I can find them.
2. IPCONN statistics (DFHISRDS)
This is the first version to support TCP/IP Multiregion Operation links between CICS regions. Not surprisingly, these statistics parallel those available for the older LU6.2 connections. This is where you come to find out how much a connection is used as well as the number of requests that were queued or failed. Note that queue limits also apply to IPCONNs, so you may see some transaction failures.
The number of send and receive sessions tells us a little bit about how IP connections work. In the old days, LU6.2 connections negotiated the number of send and receive sessions through the SNA service (SNASVCMG) session. Apparently IPCONN connections go through the same type of negotiation in which they compare the number of send and receive sessions in their definitions and pick the lower value for both.
3. Storage manager (DFHSMSDS)
The added statistics for storage manager involve the new dynamic storage area (DSA) above the 2G bar, called the GDSA (the G stands for grande). It's pretty much the standard stuff collected for all the other DSAs, including current and high watermark storage usage as well as cushion releases. There are a couple of buckets peculiar to the GDSA, such as the number of GETSTOR requests CICS issued to acquire storage above the bar and the MEMLIMIT assigned by the OS when CICS started. MEMLIMIT becomes important, as CICS needs at least 2 GB storage available above the line.
Seeing this made me curious enough to look through the 3.2 manuals to see how an application might get some GDSA. But, alas, the only DSA supported above the bar is CICS storage (GCDSA), which CICS uses for channels and containers. Don't get me wrong, I'm glad they found some place to put containers, but it does whet the appetite for being able to use GDSA for system or even application code, especially if Hursley adds support for above-the-bar shared memory objects.
4. Library statistics (DFHLDBDS)
CICS TS 3.2 added dynamic DFHRPL support, along with data to measure it. These statistics are centered on the LIBRARY resource definition and have repeating data groups for each dataset in it. From the rank and order in the record you can tell where the library falls in your DFHRPL concatenation. There's another bucket that can tell you how many times CICS issued a LOAD macro against the library. Unfortunately, it looks like you can't tell how many LOADs were issued against an individual dataset.
We have some new and interesting statistics to look at now that CICS owns the MQ interface. There are some numbers that were formerly available from the MQ master transaction CSQC, including the number of different API requests. More interesting are statistics like the number of calls that forced switches to an open TCB, which might be interpreted as a rough measure of how much trashing between TCBs your applications may be doing if they're not threadsafe. Unfortunately, this group of statistics does not include a counter or clock for the number of times MQ attempted to switch to an open TCB but had to wait. Until IBM adds these metrics, systems programmers will have to measure it indirectly through dispatcher domain TCB statistics.
My personal favorite is the aptly named "futile requests" statistic. This is the number of MQ API calls made when CICS wasn't connected to a queue server.
- The copy book returned for EXEC CICS COLLECT STATISTICS command, DFHMNTDS, has undergone extensive changes, most of which have to do with IP connections. These have probably been added to the CICS Monitoring Facility (CMF) performance records as well. The bad news is it looks like the new fields are in the middle of the record so customers will have to recompile their programs.
- The TCB resource and global statistics records (DFHDSRDS and DFHDSTDS) added fields containing the amount of CICS and non-CICS storage available and in use for each TCB.
- The DFHSJGDS record for JVMs removed the reset bucket
- DFHSJRDS contains JVM profile records and provides a new metric for the number of times the virtual machine ran garbage collection. This can come in handy deciding which applications should run where and picking the right garbage collection algorithm.
ABOUT THE AUTHOR: For 24 years, Robert Crawford has worked off and on as a CICS systems programmer. He is experienced in debugging and tuning applications and has written in COBOL, Assembler and C++ using VSAM, DLI and DB2.
What did you think of this feature? Write to SearchDataCenter.com's Matt Stansberry about your data center concerns at firstname.lastname@example.org.