This article introduces some basic performance concepts so readers interested in tuning, specifically new analysts, have a starting point. We’ll examine the three main areas to look for performance issues—I/O, virtual storage and real storage—and address some additional considerations.
Before looking at performance issues in detail, let’s review some background that provides a foundation for understanding CICS.
More than 90 percent of Fortune 500 companies use CICS, which, since its debut in 1969, has grown substantially in the amount of work it can process reliably. CICS lets applications read and update data quickly and securely. Each activity is called a transaction, so CICS is referred to as a transaction manager or server.
CICS supports applications written in Assembler, COBOL, PL/I C, C++, REXX, Java, and Enterprise Java Beans (EJB); Version 4.2 provides access to the latest, multi-threaded, 64-bit Java Virtual Machine (JVM) server.
Traditionally, CICS users worked on “forms” on local terminals, but, today, a CICS user could be running a transaction from a remote browser. Application programs access CICS facilities via the Application Programming Interface (API). It’s also possible to run background transactions. The advantage of using CICS is that it takes care of recovering data in the event problems occur. More recent advances in CICS have allowed it to provide and consume Web services and provide a Service-Oriented Architecture (SOA). The current release for z/OS is CICS TS Version 4.2, which was announced in April and became generally available in late June.
Typically, CICS activity occurs inside a CICS region, and there’s typically more than one region. The CICS regions aren’t limited to a single z/OS system. Inside each region is the all-important Quasi-Re-entrant Task Control Block (QR TCB). Accessing other services may require using other Task Control Blocks (TCBs). In the world of CICS acronyms, there are Terminal-Owning Regions (TORs), Application-Owning Regions (AORs), and perhaps File-Owning Regions (FORs). The final complication is that some applications can be marked as threadsafe; these behave slightly differently from non-threadsafe applications in that they don't return to the QR TCB when they finish using a service.
How do you know if there’s a problem with CICS? Several different tools within CICS provide insight into CICS performance:
- CICS Monitoring Facility (CMF) collects data about the performance of all user- and CICS-supplied transactions; the data can be analyzed offline at a later time.
- CICS trace facility will record the progress of a CICS transaction through the CICS management modules, providing a history of events.
- CICS statistics collect information on the CICS system as a whole. Five types of statistics are written to System Management Facility (SMF) data sets: interval, end-of-day, requested, requested reset, and unsolicited.
- The IBM CICS Performance Analyzer extends CICS Explorer support to help users develop, tune, and manage their CICS systems. (CICS Explorer is an Eclipse-based graphical tooling interface for CICS.)
Third-party monitor products are also available that display information about CICS system activity, active tasks, dynamic storage areas, transaction logs, and other CICS performance information.