This article focuses on CICS performance across all platforms. On the mainframe CICS is known as CICS Transaction Server, but on other platforms it’s called TXSeries, with CICS Transaction Gateway providing standardized CICS interfaces and secure access. All products are developed and supported by CICS development, and interact with each other via facilities like CICS Intercommunication. While techniques, methodology, syntax, parameters and implementation specifics may vary, most functions, concepts, and usage apply to all processing platforms. Thus, the term “CICS” in this article applies to both CICS TS and TXSeries unless otherwise stated.
I’ve been in IT for almost 45 years, and over that period, Moore’s law—the number of components on an integrated circuit (i.e., computing power or processor speed)—doubles every 18 to 24 months. As quantum computing gains traction, that law will probably continue and even increase. In earlier days, data processing was limited to the manipulation of numbers, letters, words and calculations. Word processing was barely peeking over the horizon, and the idea of personal computers or mobile phones was a pipe dream. Yet as the amazing processor growth phenomenon continues, the applications that exploit that power have kept pace and even outpaced that expansion.
For that reason, application and systems tuning to reduce CPU is as robust as the technology explosion; if anything it’s even more important. CPU is of little interest to application programmers; their job is producing a deliverable that works. But the CIO—indirectly—couldn’t be more attentive, because application or system software that doesn’t perform well significantly increases the computing power necessary to make applications and systems work. This translates into dollars, the bottom line, especially since poor performance means poor response time, another metric measured in money. Performance tuning improves both vital measures.
Tunability Enables Robust Performance
Because application development departments predominantly value function and usability over performance, CICS product development put a high priority on tunability and its favorable impact on response time. Whether it be CICS TS or TXSeries, high performance is a premium objective, and the ability to optimize responsiveness is enabled by a wide variety of selectable functions and parameters. One reason I authored the original Performance Checklist was to quantify and prioritize these features, because the wide variety gets confusing and sometimes counter-productive. The Performance Checklist evolved into the CICS Performance Guide, one of the best tuning documents I’ve seen.
The Performance Guide consists of tuning suggestions that reduce CICS, Language Environment and application program overhead, plus methods that prioritize CICS to assure the most important work comes first, two approaches that maximize effective use of processor cycles. But an even more important option precedes any internal tuning steps, namely making sure the OS provides CICS system(s) sufficient processing cycles, or if the processor is overloaded, as much CPU as possible. What follows are some significant tuning possibilities.
CICS TS Processor Utilization Tuning Options
CICS tuning options and techniques vary somewhat between platforms, similar in function but different in nomenclature and implementation. Here are some CICS TS tuning tips:
Provide CICS TS sufficiently high system priority. Whether it be via operating system prioritization or more advisedly Workload Manager (WLM), CICS and other online processing components such as IMS Database Control (DBCTL), Db2, Advanced Control Function (ACF) VTAM, TCP/IP, RACF and similar components need expedited access to the processor. WLM provides more comprehensive and dynamic processor access than simple prioritization and is definitely the recommended approach, albeit substantially more complicated. RMF is extremely helpful in working with WLM.
Use the Maximum Task (MXT) parameter to limit total concurrent tasks in a CICS system. When an input message enters CICS, CICS allocates task storage and invokes initiation processing. Too many tasks consumes all CICS virtual storage, which in turn causes a Short On Storage (SOS) situation whereby CICS terminates some tasks and thoroughly inventories and cleans task storage, using excessive CPU. MXT prevents SOS and limits task queue length, further reducing CPU used in task initiation and dispatching.
Active Maximum Tasks (AMXT) is a way of categorizing and limiting already-created tasks by Transaction ID (TranID). Some TranIDs may be heavy users of CPU, others may be virtual storage (VS), some perform excessive file I/O, some have varying mixtures of all three. Some transactions are functionally trivial (light transactions) while others perform extensive work (heavy transactions). AMXT allows a system administrator to group TranIDs into classes by processing characteristics, controlling the CICS work mix and optimizing CPU, VS and I/O usage. Not all transactions need be classified. Limiting tasks in particular class(es) can greatly improve processor effectiveness.
Various prioritizations determine which transactions get dispatched before others, which works similarly to OS prioritization. CICS transaction prioritization also works with WLM and is a measure of transaction importance which functions in concert with operator and terminal prioritization. The transactions responsible for the most important business functions being performed by the most important business individuals get first dispatch. Transaction prioritization is optional with a default setting of 1. So it may be desirable to set the average higher to “under-prioritize” the biggest hogs.
TXSeries Processor Utilization Tuning Options
Many TXSeries tuning tips mirror CICS TS, but others vary due to platform architecture. Here are some TXSeries tuning tips:
Provide TXSeries with a sufficiently high OS priority. With the exception of product names, the same is true as the first bullet in the CICS TS section. WLM is also available on IBM i.
Stay current with new releases to exploit performance improvements. TXSeries is relatively new; as a product matures it often becomes more efficient. IBM TXSeries for Multiplatforms V8.2 provided up to a fivefold response time improvement using IP interconnectivity protocol and about a 40 percent CICS transaction response time improvement when using MicroFocus COBOL. Java applications have significantly better transaction throughput, and VSAM batch applications with Structured File Server experienced up to 40 percent CPU reduction (ibm.co/2gpSwZh).
The MAXServer attribute and CEMT SET SYSTEM MAXServer command are similar to MXT/AMXT by limiting the number of concurrent transactions, like MXT. Minserver controls how many cicsas servers (e.g., transactions) run concurrently, like AMXT. The same considerations as AMXT above apply.
Make use of program caching to eliminate loading and reloading frequently used programs. When a transaction lands in TXSeries, a lookup is performed to determine the program it uses, then the program is read from disk and loaded. When the transaction completes, it’s deleted. This process entails significant overhead, not just in I/O wait time, but also processor time required for housekeeping. By using the Resident and ProgramCacheSize parameters, it’s possible to pre-load frequently used programs and reduce processor overhead for all transactions using that program thereafter.
Main Temporary Storage requires less CPU than Auxiliary Temporary Storage. Main TS isn’t recoverable.
Use Database Managed Storage versus System Managed Storage for Db2 to reduce overhead by 10 tp 15 percent (ibm.co/2xLS5uX)
Getting the Most Out of Online Processing
The above CPU tuning alternatives are just a subset of the performance options CICS TS and TXSeries offer. Tunability is vital to online, interactive systems because people don’t like to or won’t wait, which could result in lost sales or other monetary penalties. It’s less expensive to tune a system than purchase more hardware (although it’s often necessary), so software that’s designed to be adaptable to its environment provides many advantages to an IT department.
CICS in all its forms is such a product, and its value is greatly increased with the performance flexibility it provides. Performance tuning requires skill and experience; IBM support and training can bridge that gap. It’s money well spent.