MVS TOOLS AND TRICKS OF THE TRADE MARCH 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. CREATIVITY There's one fact that you can't get away from. Like it or not, everybody needs everybody else. Every person has to say to himself or herself: "There isn't one person I've ever heard of, who hasn't affected me in some way." This has to be true, because whenever we hear about someone else--what they did, or what happened to them--it affects us somehow. We have feelings about it. We have emotions about it. We think about it. And that affects our lives, like it or not. Even people we've never heard of, deeply affect us. For one example, let's consider all the people who are responsible for bringing us our cell phones and the cell phone service. Many of them may be in China or in other far-flung parts of the world. But every single one of them affects us very much, no matter what our own opinions are. After all, they brought us the cell phone that we use. And the cell phone works! This idea relates to our area, MVS, very much, although as we mentioned, it is very general in scope. We cannot forget that even in this day and age, MVS is one of the most important pieces of the computing world, no matter what anybody says. The facts are, that big companies rely on the MVS operating system and the hardware it runs on, to do very big tasks that handle a large bulk of the corporate business done, all over the world. We can't get away from that. Take away the MVS component of computing, God forbid, and a large part of the business world would collapse. Despite anyone's opinion, MVS today is a very essential component of our lives, and every single person who contributes in some way to MVS, affects practically the entire world. When you take some time to think about all the ramifications, you'll see that it's really true. So now, let's begin to zero in closer. IBM employs people to produce the MVS operating system. The vendors employ people to produce utilities and programs that make MVS better. Systems programmers and other people write their own utilities, tools, REXXes and CLISTs, to help them do their work. Let's think. What would the picture look like, if just one of these people didn't do his or her part of the job? The answer is, that there would be some missing pieces in that corner of the world, which never came into existence. In a business situation, if the person who didn't do the job was working for IBM or a vendor, then the product wouldn't be as good. Maybe the product wouldn't work at all. And the company which was responsible, would have to take some measures to compensate for the loss. Either they would have to get someone else to try and make up the work, or they would risk a real business failure in some way. So I guess by now, if you've been thinking about it, you're beginning to realize that EVERY person's work is important to YOU. WHAT CAN I DO? What can YOU do? Well, you do your work every day. The first thing you can consider doing is to do your own job well. Other people need you, in the position where you are. So if you do your own job well, then you're automatically making an important contribution to the entire world, not just to your own company or your own business. Did you ever think about it that way? WHAT ELSE CAN I DO? The other thing you can do, is to create and innovate. That's really the topic of today's piece, and it's really a very important part of the MVS systems programmer's job. If you think that being creative is hard, I'll show you that it's not. I think that all systems programmers have to have a bent for creativity, because it's in the nature of the work, and if you're not naturally creative, you won't like to do this job. But to be specific, I'll give you an example of HOW to be creative, and what it means to be creative. A former co-worker of mine, Eli Duttman, besides doing more complicated things, created a simple CLIST called X. The contents of the CLIST was one line, which said LOGOFF. If you think that's a no-brainer to do, I'll ask you a question. How many of you have already installed something like that on your systems? What's the point of this supremely simple CLIST? If you have to leave your desk quickly and need to log off your TSO session, you might nervously type the word LOGOFF incorrectly three or four times, before you finally get it right. X is less prone to mistakes. So the idea is that if you have some kind of emergency (like you're being called to a meeting) and you don't want anything to happen to your TSO session, you want a way to quickly and safely scram (i.e. get out). Now 99.5 percent of you will tell me that this CLIST is very nice, but there's a problem with it. Usually, in these modern times, when you are in a TSO session, you're usually deep within ISPF, sometimes five or six sessions deep. Everybody knows that you can't type LOGOFF from within ISPF. So you have to get out of all your ISPF sessions first, and then you have to type LOGOFF. Only then, will typing X instead of LOGOFF, help you. So you'd ask a question: "Maybe there's a REXX somewhere (say it's called XXX) so that when you type XXX from inside ISPF, this REXX will feel what sessions you have open, safely close them the way you want to, and then LOGOFF from TSO. Where can you find a REXX like that?" My answer is that I don't know of any REXX like that. But I think it is possible to create one. From all of you readers out there, I know there are some of you with enough knowledge of the innards of ISPF sessions, that you can create a program to nicely close an ISPF session that is open. Now that I've said that, I know what many of you will think. AHA! He's got something on the CBT Tape that does this! But the truth is that I don't know of one. So, dear readers, where does that leave you now? At this point, I've got you thinking exactly what I want you to think. Picture this. Think of your favorite tool. And now suppose, just suppose, that it doesn't exist yet. Somebody has to sit and write it. Somebody has to create it and bring it into existence. Before the tool exists, it's something that you might like to have, but you've half given up about actually having something that does what this tool should do. In contrast, after the tool has actually been written and brought into the world (and it has been made accessible to you and installed on your system), you can actually use it and do what you want with it. Just think hard about the difference between these two scenarios. Now, you've got my point. What is the difference between wanting something and actually having it? Additionally, what is the difference between wanting something that actually doesn't exist (yet), and bringing it into existence yourself? It's the exertion of effort. The effort needs to go in two directions: gathering knowledge, and then applying the knowledge once it has been gathered, to accomplish the result and create the tool. Once this has been done, you have brought the tool into the world. It is as if you have actually given birth to it. Before you did what you did, the tool didn't exist--it was vaporware. Now, you have actually created a working, useful being. So, you'll add, "it's too hard for me to create every tool I want, all by myself. I don't have time for it." This is a point well taken. But to answer, I'd say that you should at least create a few of the tools yourself, and then you can also look in the CBT Tape collection of free tools, or in other places, and try to see if someone else has done the work of creating the OTHER tools that you ALSO want to have. Now I've really shown you what I mean to say. Before a tool is created, it doesn't exist in the world. Someone has to write it, and (so to speak) give birth to it. Only THEN, does it exist. If a tool hasn't been written yet, it doesn't exist. Once it has been written and does exist, if you want to make it useful for you, you have to install it, and exert some kind of effort to make it available to fill your needs. THAT's what I mean by creativity, as it applies to us. SHARING YOUR CREATIONS In the PC world, there are two schools of thought. Should I try and make money from the tools I write, or should I share them with others for free? In the MVS world, the software marketing situation often forces our hand. In the MVS world, unless you have some marketing connections or you're willing to exert great effort, possibly with no return or minimal return, it is very hard to market the software you've written. So in the MVS world, a lot of people give away their software for free, simply because there isn't any other real choice. Of course, someone can keep his software to himself. I know a person like that. This person wrote a programming language which he uses in his own work. He's had this tool, and kept it to himself, for maybe twenty years. (Of course, it's his right to do so.) But to my knowledge, he hasn't made a penny on it in all this time. And by not letting anyone ELSE use it, he's deprived people, both of getting their work done faster, and of helping him debug and enhance the tool, to make it better, even for himself. He has also kept his name from getting around. I think that if this person will share his tool and lets other people see it, that language might have the potential to become some sort of a mini-Linux for MVS. That's my opinion. It's a big world, and other people have their reasons for doing things. But I think that by his not sharing his creation with others, this person has deprived a lot of people, and himself also, from gaining a lot of benefit in many varied ways. How can you share your creations, and also reap the benefit of getting other people's suggestions for improvement? One way is to have your creation put into the CBT Tape collection of MVS tools. This way, your tool can eventually benefit many other people, and conversely, many other people can contribute their suggestions for enhancing and improving the tool as well. It's a win-win situation, unless you have some REAL potential for making money from your work. Then I'd say that you should make money. But it's very hard to do that in the MVS world, unless you really can see your way through. The CBT Tape collection can be reached from its web site, or by emailing me at sbgolob@cbttape.org. Or else, just go to www.google.com and enter the words "CBT Tape". SOMETHING CONCRETE To conclude this month's article, I'd like to mention a few of the very new contributions to the CBT Tape, which you might be interested in deploying. These can be found on the Updates page at the CBT Tape web site. They will soon find their way into the main CBT section of the site. The first thing to look at is File 708, from Glenn Siegel, which is a very general MPF exit that may be able to replace all, many, or most, of your current MPF exits. Glenn calls it "not your mother's MPF exit." I call it (at the risk of some political incorrectness) "the mother of all MPF exits." It's worth a good look. Next, is File 706 from Andrew Armstrong, which is currently on the Updates page, but since it is a very large file, I am still looking for a permanent home for it. This file will convert your MVS-generated reports into Shared Vector Graphics (SVG) format, so that the pictures will be scalable and will not lose resolution when enlarged. In SVG format, your graphical pictures of performance info and such, will be able to be moved to other platforms, all across your corporate network. A cool thing indeed! I just have to find a good home for the file, because the JAVA executables which are included with it, are very large, and don't zip down well. File 705 is from Dave Cartwright, and shows you how to do some performance tuning on a FLEX-ES machine. It looks like FLEX-ES machines are here to stay, since they are the current supported low-end platform for MVS. So if you've got one, it's nice to have tools for it. Dave Cartwright has also contributed File 662, which helps you convert your CA-1 managed tape library to a FLEX-ES Faketape (TM) tape collection. If you want to import real tapes into a FLEX-ES environment, look at my File 533 collection of tools to create Faketape-format and AWS-format tapes on any MVS system, or to cut real tapes from them on any MVS system with a tape drive. For more info about many more new tools, please look at the Updates page of the CBT Tape web site. I hope, as usual, that you were able to gain something from reading this month's column. Creativity, meaning writing software tools--simple or complicated--in your language of choice--really is a process of making something out of nothing. Before you wrote the software and did the work, the tool didn't exist. You were literally its creator. Think about it! I wish all the best of everything to all of you, and hope to see you here again next month.