MVS TOOLS AND TRICKS OF THE TRADE DECEMBER 2005 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. ALL BEGINNINGS ARE DIFFICULT After writing this column for 17 full years, I felt it ironic to be talking about beginnings. But the real truth is that beginnings are what accomplishment is all about. It has to start from somewhere. And once you get started, then you're on your way. MVS Systems Programming is the same way. When you begin your career, you have to get your feet wet. Then you learn more and more, one thing at a time, until you finally get comfortable working. You add experience, in the process of being assigned to do more tasks, and it keeps building, until you eventually get to feel that you can handle most anything that'll come along. Then comes a snag, a completely new thing to do, that you haven't ever seen before. (Remember when UNIX first came into MVS?) And you feel you're back to square one. But since you have confidence that you've been able to do all the work up to here, and since everybody else is in the same boat, it's not as bad now, as when you FIRST were beginning. Now if you think about it a bit, there are really a lot of beginnings in this whole process. Every time you learn something new, it's actually a new beginning. Even if you're reviewing something you already know, it's another beginning too, just to put the thought in front of your mind AGAIN. So it comes out that if you know how to "handle beginnings" well, then you've mastered a lot of what life consists of. And it's a plain fact, which everybody knows, that all beginnings are difficult. WHY DOES IT PAY TO KNOW THIS? What advantage is it to you, to know the fact that "all beginnings are difficult"? Why does just knowing that fact, help you out? The answer is that since most of our activities include so many "beginnings", as we mentioned before, if you know that you'll have to get over a hump, and that it's inevitable and you can't avoid it, then you'll just reconcile yourself to doing it, and you'll do it. The other way, not knowing that all beginnings are difficult, you'll just grouse that "things are too hard" and you'll never get started. Knowing the fact that ALL beginnings REQUIRE that you get over an initial difficulty, will help you accomplish all manner of (great and small) things in life. And the small accomplishments will eventually build and accumulate, to become big ones. AN EXAMPLE I'd like to share one of the "new things" that I've done in my own career, which initially had been difficult to "get into", but once I was there for a while, everything went more smoothly. And actually, if you think about it, probably most of the things which you have done, are much like this, too. Looking at this example will surely jog your own memory to recall similar experiences which you have had, where it was tough to get started, and even tough to continue, because there was one "beginning" after another, and they all seemed to be endless. This experience which comes to mind, was my first encounter with a VTS, or Virtual Tape System. And you'll soon see why it stuck in my memory so much. Our new VTS was an IBM box which simulated tapes using its own special DASD, and when that DASD would come close to getting full, some of it would be backed up (transparently to the user except for recall response time) to a bank of real 3590 volumes. MVS would think that the VTS is a library of tapes and a bank of 3490E tape drives. But we also had the CA-1 Tape Management system, and the "virtual volumes" in the VTS had to be made known to CA-1 as well. My task was to produce an audit report to compare what CA-1 thought about the status of a tape, to what the VTS thought about that same tape. We didn't want one system thinking the tape was a scratch tape, while the other one was thinking that the tape was currently being used. At the beginning, my bewilderment was complicated by the fact that I had no idea how an inquiry to "tape status" worked, in the VTS. So I had to get familiar with how MVS looked at the status of an individual tape in the VTS. What was the inquiry method? It turned out that MVS kept the tape status info in a strange and new and "weird" type of VSAM catalog entry, which took some getting used to. The "catalog of tape volumes" was called a VOLCAT, and in order to inquire about the status of a tape, you had to do a special type of LISTCAT TSO command against that catalog, using a VOLENTRIES( ) keyword. This provided what I'd call a quick inquiry about the status of the tapes in the VTS, but it was not entirely up-to-date. I don't remember exactly what the vulnerabilities were, but there was a definite possibility that the actual VTS volume information could be updated, and the LISTCAT inquiry wouldn't show the latest volume status. So I found out that the best status information could be had, by querying the VTS box directly, using an IBM macro interface in an Assembler program. I duly wrote a program that used this macro call, to the IBM macro CBRLXCS, and produced an output file in a format of my own choosing. After a number of experiments with this program, I found that the direct VTS query, volume by volume, was prohibitively slow when you wanted to run it against all the volumes in the VTS. So I wrote another program to convert the original LISTCAT output into my new format, and I had two alternative methods for getting VTS status for a large number of tapes in the VTS. All of this could be considered one conglomerate of "beginnings", one after the other. I'd definitely say it was difficult to go through those experiences with each and every "beginning". But the important fact is that eventually I broke through, and I was successfully able to produce the audit report. I had some similar difficulties on the CA-1 side too. When it was all done, it was just another report that we ran every day. But I'll always remember all those beginnings, one after the other. If you want to see the results of this work, they are in the (free) CBT Tape collection of MVS goodies, in Files 519 and 516. To get to the CBT Tape web site, just do a www.google.com inquiry for the words "CBT Tape", and you should find the site very easily. You don't have to be a member of anything, or know a password, to download any of the good stuff that's there. If you've never looked at the CBT Tape web site before, that's also a "beginning". What I'm trying to show here, is that if you look at your tasks as a series of "beginnings to be broken through", you can eventually accomplish big things. EQUIPMENT OTHER THAN MVS Many of our beginnings occur when we are forced to use systems, other than MVS, in our work. We have to get used to something new. A good example of this, in former times, was when I was going from one version of Windows to another (for terminal emulation, etc.) and it was hard to get used to where the old functionality was, in the new product. For example, I like to use the "Show Desktop" icon in my tray, at the bottom of the Windows screen, and one of the new Windows releases took that icon out of the tray. It was very hard to find it again, as I recall, and I was struggling with my terminal for a couple of days, until I found where that icon was being kept by default, and I was able to move it to it's proper place at the left side of the tray. I'll give you another, and more serious example. Having worked in a small development shop, and having to use a P390 and a FLEX-ES system, I can surely tell you that the OS/2 based P390 machine and the Linux based FLEX-ES machine have given me fits, at the beginning. I couldn't even do the most elementary stuff with my MVS machines, until I figured out how the basic configuration procedures were entered into the underlying "other" operating systems. With the FLEX-ES machine in particular, since I didn't know any Linux or UNIX at all before, it was very slow at the beginning, until I was able to pick up all the basic commands about how to list the contents of directories, copy files, and so forth. All I can give as advice here, is to say that you should get as comfortable with the necessary basic commands that you need in the new system, and from then on, it's a matter of personal taste, how much you want to get involved. But the beginning is difficult, and this kind of thing impacts many of us. I'd simply say that you should just plaster a smile on your face, and gut your way through it. If you're in a bigger shop and other people have to get used to the same new stuff, it's definitely easier, because you can work it out together with them, and somebody there may actually know something. In everybody's experience these examples are innumerable, and we have all seen that "beginnings" of any type, involve snags. CHANGING JOBS OR SITES Consultants see more of this phenomenon than regular employees do. The question is: "How do you go about getting used to another MVS system at a new site?" It may become hard to find the tools that you are used to using. Things aren't in the "right place". Especially if you have worked in the same shop for a long time, you get used to where everything is, and you're ESPECIALLY used to the fact that any equipment or tools, once installed, usually stay put. When you move to another site, things DON'T stay put, and in my mind, that situation qualifies as a "new beginning". So therefore it has to be tough, to at least some degree. For myself, I try to minimize the difficulty by packaging all my own optional tools (as far as possible) into single libraries that can be easily moved. I have my own load library, my authorized load library, my panel library, JCL library, message library, and so forth. I try to make sure that these will go where I go. But of course, sometimes that is impossible because of company restrictions, and then I have to learn to use what THEY have, and not what I have. At that point, it's a beginning, and it's difficult again. THE REWARDS All of these trials and tribulations are part of our life, but there's also an up-side to them. Experience is the best teacher, and every "beginning" that you have to slog through, gives you invaluable experiences that will certainly help you get through whatever lies ahead. Most people will eventually get a tremendous satisfaction from the accomplishments that they've achieved, if they'd stop and think about where they've been, and what they've been through. I've learned in my own travels, that above all, the most valuable reaction that I can have to all this, is to be THANKFUL for having been given all of these experiences and opportunities. So to summarize, I'd say that it's a lesson in life to recognize when some experience is a "beginning". And once you know it's a beginning, you automatically realize that there's going to be some kind of difficulty attached to it. And once you realize that, and you hunker down and get over those obstacles, you'll be on your way to real accomplishment. This is one of the most important lessons that I've ever learned! I wish all the best of everything to all of you. And I hope to see you here again next month.