MVS TOOLS AND TRICKS OF THE TRADE MARCH 2008 Sam Golob MVS Systems Programmer P.O. Box 906 Tallman, New York 10982 Sam Golob is a Senior Systems Programmer. He also participates in library tours and book signings with his wife, author Courtney Taylor. Sam can be contacted at sbgolob@cbttape.org. Information about the CBT MVS Tapes can be found on the web, at http://www.cbttape.org. CBT Tape Recent Developments - Part 2 Every once in a while, we devote an installment or two of this column to displaying some of the newer contributions to the CBT Tape MVS Utilities collection, which have been either submitted recently, or have been considerably enhanced lately. The CBT Tape collection can be found at www.cbttape.org, and you don't need to be a member of anything, or to know a password, to get any of the thousands of software tools, large or small, which are posted there. Last month, we talked about three of the biggest contributions (or group of contributions in Lionel Dyck's case.) of software in the CBT collection that are useful for MVS shops. These were the PDS package from File 182, the REVIEW package from File 134, and Lionel Dyck's big collection of packages on Files 312, 313, and 314, which includes (but definitely is not limited to) his XMITIP package that is a comprehensive and very rich facility to send emails from an MVS system. Today, we'll continue by describing some of the other new and improved software programs and packages in the CBT Tape collection. Again, the list is long, and we're not going to come near to getting to the end of it. But I'm here to whet your appetite, and if you explore the CBT Tape collection for yourself, I'd bet that you see quite a few software items that you'd put on your own wish list. Since these programs and packages are already available and they're free, your wishes will turn to reality very quickly, just for the downloading and installing of them. Of course I have to add the caveat that since these programs are free, no warranties come with them, but by and large they usually (at least in many cases) have been thoroughly tested (by users like you and me, and by the authors), though the degree of testing will have varied from package to package. Most of the time, you have access to source code (or to the program authors), so fixes can be made or obtained rather quickly in many cases, practically speaking. PACKAGES, PACKAGES, PACKAGES We can start by talking about CBT File 708, which is an automation package by Glenn Siegel called MPFXTALL. MPFXTALL works as a generalized MPF exit, and it can be rigged up to automate your startup and shutdown procedures, for example. But MPFXTALL can do anything that any MPF exit can do. As an MPF exit, MPFXTALL can get control very early in the IPL process, so therefore you have very complete startup and shutdown coverage. Glenn himself includes MPFTXALL into the systems he sets up, so this package has been tested quite thoroughly. Mark Zelden's large collection of tools is on CBT Tape File 434, which he updates quite frequently. Many of Mark's tools are written in REXX, so they are quite easy to install. One of the key members of this collection is Mark's IPLINFO program, a REXX exec that displays (under ISPF BROWSE or even under TSO READY mode) many statistics about your latest IPL, the Link List, LPA list, APF library list, subsystem info, address space statistics, startup parms, a virtual storage map, and more. This stuff was all obtained using REXX! Mark has a half-zillion other tools in his collection. One useful subset of them is ZBROWSE, ZEDIT, and ZVIEW. When you're editing a file which contains a dataset name, just put the cursor on the same line, enter ZEDIT, ZVIEW, or ZBROWSE on the command line, and you'll EDIT, VIEW, or BROWSE, that dataset! For TSO commands which use the PUTLINE display interface, you can capture their output and BROWSE, VIEW, or EDIT it, using Mark's TSOB, TSOV, and TSOE commands. Just say TSOB, TSOV, or TSOE before issuing the TSO command whose output you want to capture. Mark also has a way to make a one-pack or a two-pack MVS system out of your current (full size) MVS system, so you can conveniently make a "rescue system" for yourself. Just look at his ONEPAKxx and TWOPAKxx members on File 434. Mark's stuff is definitely worth exploring, installing, and (in some cases) customizing for yourself. Gilbert Saint-flour is the original author of the fantastic SHOWMVS program, which now is on File 492 and is maintained by Roland Schiradin. The latest (64-bit) versions of SHOWMVS are now called SHOWzOS. SHOWzOS displays a huge number of internal MVS quantities from both the entire running MVS system, and from the invoker's TSO session. Information from a huge number of internal MVS control blocks, both documented and undocumented (by IBM) are displayed. This is a program (a TSO command) that you ABSOLUTELY HAVE TO try for yourself. Gilbert's OTHER stuff is on CBT Tape File 183. There, Gilbert has written, or supplied us with, so many original tools that it boggles the mind. I'll mention just a few of them, and what they do. One handy tool is a TSO LOGON reconnect exit, IKJEFLN2, which allows your TSO session to switch from one tube to another, through the execution of the VTAM command: VARY NET,TERM,TYPE=COND,NOTIFY=NO,SLU=tubelu where tubelu is the LU (logical unit) of the new terminal. Gilbert sells an improved version of this IKJEFLN2 exit with a graphical interface, but his free version is quite fine. Now we'll mention a few of Gilbert's more novel programs, the like of which are hard to find elsewhere. I have to tell you that I'm not going to come close to mentioning all of them. You have to look at CBT File 183 for yourself. A REXX exec called VSAVE operates as an edit macro, but in a VIEW session, to SAVE the member being VIEWed, just as a SAVE command will save a member being edited. Ever have trouble deleting an uncataloged dataset because another dataset with the same name was OPEN? Well, Gilbert's BYPASSNQ batch program will solve that. Another program is called DONTFAIL. If a batch job has multiple inputs, and one of them isn't cataloged or isn't there, DONTFAIL will allow the job to "not fail" by DUMMYing out the DD name that isn't there. Gilbert's BR TSO program allows you (if ISPF is present) to browse most VSAM and BDAM (as well as normal non-VSAM) data sets. BR may be invoked as a TSO command, as a program, or as an EDIT macro. LINKLLA is a batch program to simulate a "REFRESH LLA" command in a batch job. Three scenarios are possible. You can refresh a whole library, or a single member, or you can linkedit a load module into an LLA managed library and refresh it in a single step. A subset of Gilbert's utilities which he has reworked to operate at the (very old) MVS 3.8 level under Hercules, can be found on CBT File 749. And I haven't even begun to scratch the surface in listing many of Gilbert's innovative programs. We must go on. NEW CONTRIBUTIONS We have been blessed with contributors. Now, I'll mention a few of the latest contributions to the CBT Tape collection, among many others of them. Steve Bacher has donated much of his life work, in several programming languages: Assembler, C, and PL/I, to the CBT Tape collection, in File 772. Arthur Fichtl has contributed an interactive disassembler that can disassemble a chunk of storage in a dump. Arthur's contribution is in CBT File 773. Craig Schneiderwent has coded a proof of concept application which allows CICS COBOL to respond to HTTP requests. Craig's program is in CBT File 775. Robert Prins, of RPF fame (an ISPF-like editor found in Files 415 (non-XA) and 417 (XA)) has contributed a very novel set of REXX execs that are run as ISPF edit macros. These macros turn code, from various programming languages, into HTML source. Optionally, these REXXes will invoke a browser to display the resulting HTML code. Rob's HTML stuff is found in CBT File 769. Let's mention just a few more of the newest things. Daniel Gaeta has contributed (CBT File 767) a frontend for TRSMAIN to TERSE and UNTERSE files in TRSMAIN compress format. Daniel Gaeta has also contributed (CBT File 778) a set of programs to access the SMP/E API, GIMAPI, through REXX variables, to produce reports from SMP/E zones. Steve McColley, who is the current maintainer of what used to be called the "JES2 Mellon Mods", has contributed extensions to the original mods and has included additional exits, at the z/OS 1.7 and 1.8 levels, in CBT File 766. As far as I know, the original "Mellon Mods" JES2 functions are still there too. Ken Fitzgerald has contributed an entire package called LOGGRASM (CBT File 757). According to his description: LOGGRASM is a utility to perform basic source setup of an Assembler program, and to log basic information about an Assembler program during execution. This utility provides a method to show program execution in Assembler language programs. LOGGRASM is a tool to assist students and new programmers in learning Assembler on a mainframe. Ken has already taken LOGGRASM through five revisions, since having first submitted it to the CBT collection. Rick Bourgeois (CBT File 768) has converted my File 533 programs (named VTT2****) to run under VM and CMS. These programs will take a "real tape" and convert it into either an AWS-format disk file, or a FLEX-ES FAKETAPE format disk file, and vice-versa. From one of those disk files, you can actually cut a real tape. These programs make it possible to archive your large collections of tapes into a few DVDs or CD-rom disks. They also makes it possible for expired or expiring FLEX-ES users to convert their FAKETAPE format tapes, so they will run under other MVS systems. Let's mention just a few more new things, before ending. Karl-Heinz Doppelfeld (CBT File 771) has contributed an ICSF (Integrated Cryptographic Service Facility) monitor written in REXX, which displays various ICSF statistics. Edgar Hofmann (CBT File 776) has contributed a revised version of RECV390 to expand an XMIT-format MVS file on a PC. Philippe Cochy has contributed CBT File 777 which contains a REXX exec to read a dcollect report and check disk space occupancy. This REXX contains an original algorithm to filter dataset names. Roland Schiradin has upgraded his COBANAL program (CBT File 321) so it will interpret load modules from the latest versions of COBOL. Tom Conley (CBT File 495) has upgraded his "Dynamic ISPF" package (which helps you allocate files for individual ISPF applications, as needed) to a new release level. Bill Godfrey (CBT file 741) has contributed his MAKEB64 program that encodes/decodes a text file to/from BASE64 format. Bill Bass (CBT File 779) has contributed a very clever COBOL program which looks at a job in SDSF and performs symbolic substitutions based on the symbolic substitutions made by the Converter and the Interpreter. THINGS ARE EXCITING So I'm very happy to report that the CBT Tape collection is a dynamic and ever-changing environment. Go to www.cbttape.org, look at the Updates page, and see for yourself. All the best of everything to all of you. I'm looking forward to seeing all of you here again, next month.