MVS TOOLS AND TRICKS OF THE TRADE JUNE 2004 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 NEW CONTRIBUTIONS Every so often I like to report about new contributions to the free MVS software collection called the CBT Tape. It is now close to 30 years since Arnold Casinghino (then working at the Connecticut Bank and Trust Company in Hartford) started this collection. Since the acquisition and dissolution of the original CBT bank, the letters "CBT", as we use them, mean nothing in particular, except to refer to this huge MVS software repository. But the collection remains a freely available source of useful stuff for all MVS systems programmers who are in need of goodies. And who isn't? The reason that it is not boring to report on new contributions to this collection once in a while (we haven't done it here in over two years) is that new material has been arriving at the average rate of 15 to 20 file revisions per month, and I feel that after two years, it's worth informing people about what's going on. Something we've got might just be something that you need. Although the CBT Tape web site has its own URL, you can also get to it through NaSPA's web site. And try doing a www.google.com search on CBT Tape. What is "fair game" for a CBT Tape contribution? The answer is: "anything that is useful for an MVS systems programmer" whether it be a complete software program tool package or merely an idea. We even have a small, and very clever, collection of CLISTs by Eli Duttman (File 195) which includes a one-line CLIST containing the one word LOGOFF. The CLIST is called X. When you're in a hurry to get out of TSO, it's far easier to type X than to have to type LOGOFF and type it wrong three times. As we said, anything that helps you is fair game. On the other hand, the CBT Tape collection contains "battle-wagon sized" ready-made software packages like the PDS command package (File 182) for manipulating all kinds of datasets, Fullscreen ZAP (File 134) for seeing, finding, and changing any disk data, SHOWMVS (File 492) and MXI (Files 409 and 410) which are the ultimate MVS Auditor's tools, and REVIEW, an extremely powerful file browsing tool, which is now acquiring ISPF-like TSO-based file editor capability. All of these packages greatly extend and expand the capabilities which IBM claims to give you. And they're for free! You just have to discover them, download them, install them, and use them. This is the ultimate MVS Toy Store! WHAT'S NEW? Here's an idea that was inspired by a new CBT Tape contribution. It may be applicable to a considerable number of shops, and I feel the idea is so important that it's worth mentioning first. Suppose a company is considering getting rid of MVS because of the expense. But in reality, they really need the functionality and capability of MVS, and they're only bothered by the cost. The solution? Downsize MVS by getting a FLEX-ES system (or several of them) from Fundamental Software. Everybody will be happy. Your company will be happy because it hasn't lost much of its essential computing capability and power. You (as the sysprog) will be happy because you haven't lost your job, or your ability to work on an MVS system. Fundamental Software (or one of its competitors) will be happy, because they now have new business. And the customers, users, and programmers for that installation will be happy, because systems will work well, and they will not have to be converted. IBM will be happy, because they won't have lost an MVS customer. This entire idea came from a CBT Tape contribution. I hope it helps a lot of people! Now I'll continue, and just throw a lot of stuff at you. We'll start with the automation stuff, because there's been a lot of it, and we'll go on from there. I've personally tried some of this stuff, but obviously if there are three or four automation packages, I can't have tried all of them, so if you need some more console automation, at least you have a choice, and you can explore these packages for yourselves. For myself, I've preferred the old NETINIT package, as revised for OS/390 and z/OS by Joel Ewing, and which can be found on File 672 of the CBT Tape collection. NETINIT is an old program, originally written in the early 1980s, which issues timed and (optionally) monitored console commands after VTAM has been initialized. Its specifications probably were part of the requirements asked of IBM, which resulted in the introduction of IBM's VTAMAPPL program, and indeed, NETINIT seems to be functionally equivalent to VTAMAPPL. The idea of programs of this type, is to delay the starting of tasks like TSO or TCAS, that are dependent on VTAM being up. So NETINIT or VTAMAPPL or another program of this type, will wait for the IST020I message that VTAM has been initialized completely, and then they will start other tasks that may or may not be dependent on VTAM. NETINIT also has a separate "system shutdown" capability, so I've set it up as the NETSTOP proc to shut everything down until we just have RACF, TSO, VTAM and JES2 left. But the NETSTOP capability can take the system down much further than that, and then stop VTAM itself. I personally prefer NETINIT to VTAMAPPL because I have more complete control over it, and because it works on older MVS systems. So at least you have an alternative to VTAMAPPL if you need a substitute. A related VTAM-dependent package is NETSOL on File 356, which has been updated by Dave Juraschek to work on z/OS. Other console automation packages, not VTAM-dependent, are: AUTOMAN from Simon Spanchak (File 627), Sergey Makogonov's system for automated shutdown and system control on File 588, and Hunter Zhou's AUTOIPL package on File 623. As I've mentioned in a previous column (April 2003), the TSSO automated operations package (File 404) has been updated, mostly by Ed Jaffe, to now work for z/OS systems. TSSO executes as an MVS subsystem, and it is a fully functional console automations package. TSSO also does other unique things, like creating a genuine line-mode TSO environment for the MVS console, so if you want to rename a dataset from the system console using the TSO RENAME command, or compress a pds without TSO using the line-mode PDS 8.5 IEBCOPY interface (the PDS COMPRESS subcommand), you can do so when TSSO is installed. MORE NEW THINGS Lionel Dyck's large contributions deserve special mention. This collection is so sizable that it takes up three CBT Tape files, Files 312, 313 and 314. The collection consists of many separate utility packages, most of which are written in REXX. Because Lionel has contributed so much stuff, I (as proprietor of the CBT Tape) made the decision to separate it all into three files, by alphabetic order of the member names, for want of an easier way to find things there. File 312 contains members whose names begin with A-R. File 313 contains members beginning with S-TS. File 314 contains members beginning with TX-Z. Lionel's first two packages were XMITIP, which allows MVS users to send emails directly from TSO, and FTPBATCH, which uses an ISPF interface to set up batch FTP jobs that accomplish the transfer of files from MVS systems. But Lionel has about 15 or 20 more packages of various sizes, to help make your work easier. According to the scheme above, XMITIP is in File 314. FTPBATCH is in File 312. It is worthy to mention something about the enormity of XMITIP. XMITIP itself, as it is shipped currently, contains in excess of 46000 card-images of material. In addition, there are some other pieces that XMITIP uses. Since XMITIP has to format emails, and emails can have materials in HTML, RTF (Rich Text Format), or Adobe PDF format, XMITIP also includes separate packages to convert plain text into these formats. These packages are called TXT2HTML, TXT2RTF, and TXT2PDF, respectively. All of the XMITIP materials are on File 314 of the CBT Tape collection, because their member names coincidentally begin with the letter TX or higher, which places them at the end of the alphabet. So it comes out conveniently, that the XMITIP-related materials are found on File 314. XMITIP also has its own news group, called xmitip@yahoogroups.com . Some of the smaller tools in Lionel's collection are also extremely useful. I'll mention a few of them. PLPISPF (Product Launch Point) is a scheme to allow ISPF users to go into any ISPF application they want, from any point in their ISPF session. LSTPROC, which I use frequently, is a REXX exec that looks up all libraries that are available to JES2 as PROCs. The result of invoking LSTPROC is an ISRDDN display of all the PROCxx DD names in the active JES2 PROC. Since looking up the sequence of active PROCs on a JES2-based MVS system is normally quite tedious (you have to find the active JES2 PROC, usually in SYS1.PROCLIB, and then you have to search the libraries in the PROCxx DD statements there, by hand), LSTPROC becomes an extremely convenient lookup tool. And you get the active version of each PROC name instantly. Other miscellaneous tools in Lionel's collection are: CAVXTRT, a tool to extract and print parts of CA-VIEW reports. CMDS (Doug Adams' ISPF Command Table handler). COMPVTOC, a REXX to compare dataset names on a VTOC to a catalog. CSVEDIT, an ISPF Edit macro to convert a dataset or member into "comma separated values" so it can be imported into a spreadsheet. CUTPASTE, a set of ISPF CUT-PASTE edit macros. DDLIST, an ISPF command to display all datasets concatenated into a given ddname, and to optionally display all datasets containing a given member name. DOALL, a REXX exec to run a given ISPF edit macro against all members of a given pds. PRMCK, an ISPF edit macro to verify the validity of certain PARMLIB member types, before you try them for real in a system IPL. And there are many more such tools. Now we'll leave Lionel's stuff and I'll say a few words about some other new tools. Rob Scott's comprehensive MXI tool, which tells you much information about the internals of your running MVS system, has been enhanced some more. Rob Scott is now employed by Rocket Software, which owns the rights to MXI, but they are committed to supplying the public with a free version of MXI indefinitely. Rob has been submitting all of the free enhancement levels to the CBT Tape. Another bunch of wonderful MVS tools has been recently contributed by Hunter Guanghui Zhou. Notable among Hunter's work is his automated IPL and System Shutdown (File 623 - see also Sergey Makogonov's File 588 for a similar package that works differently), SENDMAIL (File 638) which can send emails and attachments from OS/390 and z/OS systems, SETHOUR (File 639) which can do everything at once, to let your system know about Daylight Savings time changes, including an edit of your active CLOCKxx PARMLIB member for TIMEZONE, OFFLOAD (File 668), which can copy JES2 spool outputs to plain sequential datasets, and his TCP/IP NPF exits (File 621), which allow pc network printers to print MVS outputs, even though there is only pure TCP/IP, without any SNA gateways, or postscript support features on the printer. There have been many more recent changes to the CBT Tape collection than just these. If you'd like me to write another column specifically dedicated to describing them, please email me. But now I'll tell you what you can do, to discover them for yourself. WHERE YOU CAN LOOK THIS UP YOURSELF The general documentation file for the CBT Tape materials is File 001, which can be downloaded from the CBT web site. If you do a FIND when browsing this documentation, for strings like 'V-465 SECTION' or 'V-464 SECTION' and so forth (descendingly), you'll find all the changes to the CBT collection which occurred at those stated version levels. As of this writing, the current CBT Tape version is Version 465. So if you're reading this article at a later time, there will be more "change sections" ahead of the 'V-465 SECTION' on File 001, which will show the specific file updates for each CBT Tape version that came later. Additionally, there's something else you can do. You can break File 001 into a partitioned dataset, using my CBTUPD assembler program on File 006, to get the changes at each version level separately, as separate pds members. Using this general method, you can easily check or print out the updates on several of the previous tape versions. For myself, I find it very handy to have CBT Tape File 001 broken up into this pds. Once you've set up the procedure, you can quickly do it for each new CBT Tape version. If you're on the CBT Tape web site, there's something quick that you can do, to see the new files which are from one step back. When you get into the CBT Tape web site, and you look at the CBT Tape files in general, you have the option to list all NEW files, which will only tell you the files that have changed in the current version, but this will not list the changes in previous versions. So the best way to find recent tape changes over several versions, is to download File 001 and search the version change sections for yourself. CONCLUSION We are very grateful that the CBT Tape collection of MVS tools is a growing and changing body of knowledge. It certainly pays, every so often, to keep track of the changes that have been going on. I've frequently received an email about some MVS question, and several days before, a contributor had sent me some new package which solved that very person's problem. This has happened so much, maybe a couple of dozen times already, that I feel I should mention that it pays to write me, or to take a fresh look at the CBT Tape web site to see what's available now. I wish you all the very best of everything, and hope to see you here again next month.