MVS TOOLS AND TRICKS OF THE TRADE JUNE 2006 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. THE WORLD SHOULD BE FULL OF COLLECTORS I am a "fairly" firm believer in my not having to do the same job twice, or at least too many times. Of course, there are some advantages to repeating the performance of a job. It drives the procedures deeply into your head. You become familiar, in fact, quite intimately familiar, with the processes. They become part of your "skill set". And for us, in our position, that is goodness, because as the system doctors, we have to have a good handle on all of the everyday methods we use, and we have to show that we are always confident in getting the jobs done. But to have to repeat too many times, no! We have to use shortcuts too, otherwise, we'd never get our jobs done in a reasonable amount of time. In fact, one of the ways I feel I can tell a relative newcomer from an "experienced hand" in this business, is to see how many tools "for shortcuts" that he or she is familiar with using. Over the years, I was always happy with myself about how quickly I could get most of the systems programming jobs finished. Clever tools that people have written, make this possible. Saving your old JCL also makes this possible. Problem is, that if you go from one shop to another, can you bring your techniques with you? If the techniques are dependent on the use of commercial products, like "Omegamon" (from IBM) or "Resolve" (from BMC Software), then what if the new shop doesn't have them? Are you stuck? Sometimes yes, sometimes no. Of course, you don't have to start again completely from square one, because you know the KIND of task you want to accomplish. You're familiar with the particular operation, such as making a certain load library authorized. But at the new place, you'll have to find a substitute tool (if you can) that does the same thing. Depending on the particular operation you're trying to do, this can be hard, or even impossible, in the new environment. So the solution I've made for myself, is to collect a lot of free tools that I can bring from one place to another, and I can install them anywhere. These are unencumbered by licensing, and they have been tried and tested to get the job done, as well. For pure portability, I have come to like the REXX-based tools (such as those written by Mark Zelden - CBT Tape File 434) a lot, because they are easy to install (just copy them into a CLIST library) and there's less objection from management about running them. A REXX exec, even if it digs deeply into system control blocks, conjures up the image (in a manager's mind) that is similar to what a CLIST does. It can't be objectionable, because it's not a "product". Nevertheless, the bread and butter of my techniques is still based on collecting Assembler programs, and Assembler-based tools. However, the bottom line with me is always that: "Anything which works, is good, and anything which helps me now, is even better." SOMEBODY HAS HAD TO SAVE THE STUFF How do you go about acquiring these tools that you will use throughout your working life? Of course, you can do some of this for yourself, in a very simple way. You can save all the CLISTs, REXX execs, edit macros, and JCL that you have ever written. I always try to do this for myself. It helps me avoid having to spend time at a new site, or even at the same site, repeating the work I've already successfully done before. Getting JCL correct, for some tools such as ADRDSSU, is always a pain in the neck, if you have to start over from the beginning. It pays to save all the old job streams that have already worked before. Using the OUTDSN keyword of the TSO XMIT command helps me to convert pds'es into easy-to-transport FB-80 sequential files. I find these are also very helpful (at my current site) for backup purposes, in case any of my files (God forbid) ever gets "wiped". Entire tapes can be saved on cd-roms or other PC-based files, using the VTT2DISK program that I've written (see CBT Tape File 533). VTT2DISK converts an entire tape into an AWS-format tape image on DASD in FB-80 format, which can then be downloaded in BINARY to a PC, and you can copy that PC file to a cd-rom disk. To reconstruct the real tape from the cd, or the PC file, just upload it in BINARY from the PC to an FB-80 target file on the mainframe, and run my VTT2TAPE program (also from CBT Tape File 533) against that FB-80 file, to cut a real tape. So tapes can be put on cd-rom disks, and vice-versa. You don't really need to have a tape drive in order to save and access your tape data. That's all well and good for your own stuff. How do you go about getting access to other people's tools? Well, as you probably can figure out, the whole world is full of people who save things and collect things. Just look on Ebay for some thing you'd like to have. I once broke a "Jackie Gleason Honeymooners" mug that my wife had been saving. A short time afterward, I was able to get on Ebay, and buy nine of them. It made my wife a lot happier. People save a lot of miscellaneous stuff, including MVS tools and parts of old MVS operating systems. You just need to know how to "network" in order to have access to those resources. One place you can go, to get a huge head start, is the CBT Tape web site. Just do a Google search (www.google.com) for "CBT Tape" and the CBT Tape web site should come up at, or near, the top. You can download anything that's available from there, and you don't have to be a "member of anything" or even enter a password. Just go there and get all the tools you want or need. The user group lists, such as IBM-Main, or the other Listserv based groups, and the yahoogroups based groups, etc., can provide a lot of connectivity with other people who will be able to help you. See my April 1998 column in "Technical Support" (member CL9804AP in CBT File 120, or on the Naspa archives) which talks about how to join the IBM-Main group, and other Listserv based groups. Go to www.yahoogroups.com to find and join the Yahoo groups of your choice. I usually get "digest" files from all of the groups, which are all the posts that were accumulated during one day, or (in the case of the yahoogroups groups) collections of 25 messages or less, within each day's postings. This way, I can archive the digests without having to read all the messages right now, and I can search them later if I need some information, or to search for a person's current email address. I write to people who have posted to these groups, to ask them for help with problems, or to discuss any MVS issues that I have. You can either write to the entire group, or if it is a more personal or sensitive issue, you can write to one of the people personally. OPTIONAL MATERIALS A licensed user of any flavor of MVS (z/OS, OS/390, MVS/ESA, MVS/XA and so on backward) can order tapes of what is termed "Optional Materials." Optional Materials may be translated as "source code" and "IBM Private macros." These are available (for non-OCO modules and) for many of the IBM program products, as well as for the base operating system. It used to be, at the MVS/XA level and before, that IBM would give away the source code of most of its MVS modules, to any licensed user who requested them. PTF levels of the modules were (then) available on microfiche. After ESA and the OCO restrictions on many of the newer modules, source code and logic manuals were no longer made available for them. At the time of the introduction of MVS/ESA, around 1989, IBM itself recommended that anyone who had logic manuals (and source code tapes for that matter) had better save them. Some people have saved these materials even until now. Since these materials are the "licensed materials" and property of IBM, they can't be distributed on public software collections such as the CBT Tape collection. But if you are currently working at a licensed MVS site, I'd strongly recommend that you order all the optional materials that your site is entitled to. There is no extra cost involved, as far as I have ever heard. You just have to speak to your IBM representative and request that the Optional Materials be made part of your order configuration. It's a win-win situation, even if you don't think "right now" that you're a good Assembler programmer. The truth is that you're looking to the future, and you don't want to close off any possible future opportunities. Trust me on this. I know, from experience (both good and bitter)! You may worry about how to take care of the Optional Materials tapes, when they come. Of course, you can leave them in the closet, as most people used to do. But I have a better idea, so that the materials will be more quickly accessible when you need them. Optional Materials tapes are almost always written in IEBUPDTE SYSIN format. This means that each member of a dumped pds is "sequentialized" into one physical sequential (FB-80) file, and a separator card of the format ./ ADD NAME=memname (starting in column 1) is put before each member. The TAPEMAP program (CBT Tape File 299) can read a file on a tape, which is in this format, and report all of the member names of pds members in that tape file. So it comes out as a result, that you can TAPEMAP the Optional Materials tapes, and the TAPEMAP program will report all of the member names (read source modules and macro names) contained therein. This TAPEMAP report is a good thing to have, and if you make an FB-133 partitioned dataset out of all the TAPEMAP reports of all of your Optional Materials tapes, you can easily search for member names, and find out which tapes contain a given source module or "private" macro, and on which file number. Then you should keep some IEBUPDTE JCL handy, in order to dump any file from any given tape, into an appropriately named pds on DASD. In that way, you'll be able to quickly locate and access any source module that you may need, or want to look at. I personally would go one step further. I would convert all the tapes into cd-rom disks, duplicate and archive them. That'll keep these materials safer. And it is much more compact to have a couple of cd-rom disks, than a big stack of tapes. They are also easier to duplicate and archive. If you already have a big pile of tapes, why create a second pile just for safety? Usually there is no room in the tape closet. And if you make the cd-roms, you still have the tapes themselves, for backup. I use the VTT2DISK program (as described above) to convert the entire tapes to disk files, and I FTP them or otherwise download them, in BINARY, to a PC. Then I can either copy them to a cd-rom as is, or zip them first, to save space. An awful lot of tapes can be fit onto one cd-rom disk in this way. Another alternative is to create the pds files, one by one on MVS, using a big batch job to automate the process, run the TSO XMIT command under TSO-in-Batch, to sequentialize the pds'es, and then download (in BINARY) the individual XMIT-format files to the PC and write them to cd-rom. All of these methods work fine. If you want to view an XMIT-format MVS file directly on the PC, you can use the marvelous "XMIT Manager" program which is downloadable from the CBT Tape web site, and you can see, or print, all the pds members, translated to ASCII. SUMMARY I am of the opinion that MVS systems programmers should be packrats. In other words, we should intelligently (and neatly) save as many MVS materials, good JCL, and other stuff, as we can. It pays to put in some extra time, to make these materials quickly accessible, and to allow any given item to be easy to find. I firmly believe and know (from many years of experience) that reusing and re-customizing old jobstreams can save tons of time and work. Next month, I hope to continue on this topic, concentrating more on searching techniques, to make it more effortless to find all the old stuff that you've already saved. Have a good month, and I hope to see you here again next time.