In this age of budget-challenged IT resources, many sites are finding it necessary to use facilities readily available and shipped with the product rather than turning to outside sources that usually come with a monthly or yearly license fee. While those products are certainly admirable and usually provide function not available with the supplied facilities, they may be beyond the reach of some shops’ budgets.
With that in mind, it may be worth reviewing facilities that you may not have known were available or may have forgotten were updated and shipped with every new release. The CICS developers in Hursley, U.K., spend a great deal of resources and effort to keep these facilities current, and provide support for new product enhancements that come with every release. There may be a time when Hursley resources, just as our own, are stretched and decisions must be made whether to continue support for some of these facilities.
The CICS Operations Guide
The CICS Operations Guide is one of two publications that document the facilities and the proper syntax for using them. Updated with every release, the CICS Operations Guide uses a vertical bar (|) to show whether a facility has been added or changed with that particular release. While these facilities aren’t “CICS Supplied Transactions,” they’re modules or utilities shipped to assist customers with diagnosing CICS problems and support issues. Make sure you use the publication that matches the version of CICS you’re running. While this publication contains a great deal of information, this article will cover three components:
- DFHEISUP: the load module scanner
- DFHDUnnn: the transaction dump formatter
- DFHPDnnn: the system dump formatter.
The “nnn” in the module name refers to the particular version/release of CICS you’re using. Every version must be formatted with its own module; for example, DFHDU640 would format dumps from CICS TS 3.2. These modules ship with every release and refer to control blocks specific to that release.
Load Module Scanner
The load module scanner, DFHEISUP, is a utility that helps you identify which load modules in your CICS load libraries contain specific Application Program Interface (API) or Serial Peripheral Interface (SPI) commands you’ve listed or identified. For example, if you know a command should be changed to take advantage of a new feature in CICS, you can use the load module scanner to identify all the program modules that contain that command. For example, you could look for threadsafe or non-threadsafe commands. The list of API commands that aren’t threadsafe is well-documented and can be used with this utility to determine if applications currently running are viable candidates. Many customers can’t find (or don’t have) the source to some of the old legacy programs, so this utility could be used without source code, scanning only the module from the existing load library.
Transaction Dump Formatter
The transaction dump utility program, DFHDUnnn, formats transaction dumps written to DFHDMPA or DFHDMPB, whichever is specified in the batch job. These dump data sets are retained across a restart of CICS, but once opened a second time, the contents are rewritten and the previous contents are removed. If you wish to retain any history of these dumps, a process should be created to regularly copy them to files so they can be referenced. There are several program products that format these dumps and retain the output, but again, if your installation is budget-constrained, this utility is available and shipped free with the product.
A sample job stream for this utility is well-documented in the CICS Operations Guide. Simple and straightforward, it must run in two steps—once to scan the contents of the data set containing the dumps, and once the dump in the list is identified, to actually format the single dump selected. However, it’s important to remember that with this utility the dump you’re processing isn’t currently being written to by the CICS region, so it’s recommended if you’re diagnosing a problem in a currently running region that you “switch” the open dump data set to begin writing to the alternative data set via the CEMT SET DUMPDS SWITCH command. The current data set will then be closed for you to process while the alternate data set continues capturing any new dumps.