If you've been in the mainframe business for long enough you have a set of favorite tools to help you work better, faster and hopefully smarter. Here's a list of my favorites.
Cut and paste
This may sound silly, but those of us who started with dumb terminals back in the 1980s remember that looking for a dataset used to work like this:
- View an online catalog listing.
- Find the dataset you want in the listing and carefully write down the name.
- Go to Interactive System Productivity Facility (ISPF) browse and type the dataset name just copied down.
- Read the "dataset not found" message at the top of the panel.
- Carefully retype the dataset name exactly as written.
- Sigh in despair at a second "dataset not found" message.
- Go back to the catalog listing and repeat step 2.
Hardly a week goes by when I don't wonder to myself how I got along before cut-and-paste.
Horrible spreadsheet format (HSSF)
Now that I've mastered cut and paste, I seem to spend a large amount of my professional career cutting and pasting figures from reports into spreadsheets. Not only is this cumbersome it won't work for automated reporting jobs. HSSF, a set of Java classes able to read, create and modify Excel spreadsheets, can help.
Because it's Java, the classes port easily to the host. Once there, an HSSF program can become part of a batch job that extracts, for instance, performance data, inserts it into a spreadsheet to be saved in a UNIX system services (USS) hierarchical file system (HFS) directory. Then the spreadsheet can be shared with through the mainframe's HTTP server or SAMBA.
HSSF is part of the bigger POI project which also includes classes for creating MS Word and PowerPoint documents. See the Apache POI project web site for more details.
Statistical analysis system (SAS)
SAS is not for the faint of heart. The software expensive and it can be very resource intensive. Its quirky language looks like PL/1, but it's not, and it takes a while to get the hang of using "procedures" (PROC) instead of programming logic.
On the other hand, the rewards for SAS implementation are tremendous. Properly summarized and maintained data can provide valuable information in very little time. My favorite example job contains five lines of code that tells me how many times our production regions went short-on-storage in July 2007 in less than five minutes.
The scope of SAS can be daunting. There are dozens of PROCs able to analyze and produce just about any statistic you want. SAS also has extensive presentation services, from green screen to HTML, and data warehousing facilities.
You can mitigate the cost of SAS through familiar tricks such as running in on the smallest processor you got. The SAS institute sells the software by component so you can just buy the pieces you need. If the mainframe version is too dear, SAS runs on UNIX and Windows if you don't mind porting the data. Visit their website at www.sas.com.
MVS' System Management Facility (SMF) is a rich source of performance and resource utilization data. However, one look at the record layouts and the sheer volume of data puts off a lot of programmers.
Merrill Associates provides MXG for taming SMF data. MXG is an enormous collection of integrated SAS macros and programs along with excellent documentation on performance tuning and capacity planning. Note that SAS must be purchased separately.
MXG makes it simple to collect any and all SMF data into SAS files. There are also facilities for merging record types together, such as type 110 CICS monitoring facility (CMF) records with DB2 accounting data. In addition, the installation datasets provide documentation of MXG's structure and macros allowing very granular control of what data gets collected and when.
Lastly, Merrill Associates serves as a model to other software vendors. MXG's price and licensing terms are very reasonable. The company is also responsive the problems and suggestions of the active user community.
Restructured extended executor (REXX)
Assembler may separate the men from the boys, but REXX will save your bacon. Do you have to collect one column of data from a huge variable format report? Do you need a quick and dirty ISPF panel for application programmers to submit compile jobs? Do you need to be able to figure out a 3270 column and row based on 3270 set buffer address (SBA) orders? Write it in REXX.
REXX is incredibly flexible and almost scary in its extensibility. Its powerful text processing functions make it a breeze to parse reports. REXX avoids some of the pitfalls of other languages (such as data typing) while providing some unique features of its own (stem variables). It also runs well in batch. Extending REXX is easily done either through function packages or just by calling the program you want.
I have a couple of small quibbles with REXX. First, the I/O model is awkward, although you do have the ability to load the entire file into memory which makes subsequent processing easier. Second, if you don't have the compiler, REXX is interpreted which chews up more resources. But, on the whole, I would not want to do without it.
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.
Did you find this helpful? Write to Matt Stansberry about your data center concerns at firstname.lastname@example.org.