MVS TOOLS AND TRICKS OF THE TRADE MAY 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. WHAT'S FOREMOST IN YOUR MIND Today, I want to talk about a mental phenomenon that everyone knows about, and which almost nobody writes about, especially as it relates to MVS systems programming. This phenomenon greatly affects our MVS work, and also the way we live our lives. All people work and operate within its parameters. Everybody is consciously, or (much more frequently) unconsciously aware of its effects. But, since I'm not a professional psychologist, I've never seen this mental phenomenon formally discussed or written about, even though its effects are so pervasive, and it is so important to all of us. What is this phenomenon? How does it work? As an MVS systems programmer, I feel the effects of this phenomenon every single day. That's why I felt compelled to write something about it. It's very relevant to us. I'll keep you in suspense just a moment longer, while we introduce the subject at hand. Everybody knows from experience that we're usually thinking about something. There's almost no time when we're thinking about "absolutely nothing", even when we're sleeping. Especially at work, there's always some problem or task or situation which is currently keeping us busy, or which gives us something to be concerned about. Even if we're thinking about something at work that isn't work- related--we're still thinking about something. Now we all know, whether we're psychologists or not, that whatever we've been thinking about RECENTLY, is foremost in our minds. After that, the thoughts are not forgotten completely, but they recede, in our minds, back into what I call "various stages of archiving," like HSM stage one and HSM stage two. If you need a piece of information that you haven't thought about since some time before, you do a mental process that's somewhat like recalling data from archive. Either you get it back from a "first level of archive" which is easier to recall, or if you haven't thought about it for a long time, it has to be recalled from (to picture it) "deep in the recesses of your mind." This process of "recalling from deeper down" might be (depending on the person, the time, and the information to be recalled) somewhat more difficult. At this point we can introduce today's subject. It is simply to point out HOW MUCH our production and creativity at work, depend on what we've been thinking about RECENTLY. With this background, we can also think how our RECENT thoughts juxtapose with the recalling of certain of our OLDER thoughts. We can all gain a lot by realizing what's going on here in our own minds. If we understand that there is a mental process of archiving and recalling our thoughts, and by understanding that it is very important to bring thoughts to our "mental foreground" to make them "recent thoughts," then we can consciously increase our productivity, and create a greater satisfaction in our accomplishments within ourselves. AN EXAMPLE Here's an example to show what I mean. I recently had occasion to fire up an old release of MVS, because we wanted to create a testing situation and compare how software ran in the past, on old MVS releases, to how it runs today. While watching the IPL of the old release, I noticed that JES2 came up without parameters, so I put a "START JES2,PARM='WARM,NOREQ'" statement into the COMMND00 member in PARMLIB. After doing that, JES2 came up twice, in the first instance, still without the parameters. I needed to find out what was starting JES2 in the first instance. Upon searching PARMLIB for other "S JES2" statements, I found none, and was, for the moment, perplexed. Then I realized that JES2 is a subsystem, and I looked into the IEFSSN00 member of PARMLIB, still finding nothing. Finally, I checked out the IEFSSN00 member of my current MVS system to compare, and I found the statement: SUBSYS SUBNAME(JES2) PRIMARY(YES) START(NO) And it was the "START(NO)" that made me realize what was starting JES2 on the old system. I corrected the statement in IEFSSN00: JES2,,,PRIMARY to read: JES2,,,PRIMARY,NOSTART and with the next IPL, all was well. Now most of you have been sitting and laughing at me the entire time you've been reading this. That's because you've all had occasion to think about the contents of the IEFSSN00 member of PARMLIB recently, while I haven't tried to change one of them, in the last ten years or so. I had forgotten that the JES2,,,PRIMARY statement in IEFSSNxx will start JES2, unless you tell it not to. I have known this fact for well over twenty years. But I hadn't thought about it RECENTLY. The fact was buried in the archive of my mind. Upon receiving "a request for recall" in the form of the question, "what the heck is starting JES2 here?" I started investigating, which triggered "the recall process" inside of my mind. Even after seeing the new format of the statement defining the subsystem JES2 to MVS, I was able to recall the correct old format, and after this "recall from my archive" I was able to fix the problem on the old system. This illustrates our process very aptly. Now we'll be able to look at the phenomenon in much more detail, as it relates to our everyday work. MIXING THE RECENT THOUGHTS WITH THE OLD KNOWLEDGE If we sit down and think carefully about what we do, we'll see that most of it consists of applying our "old knowledge" to addressing current tasks and problems. So if we start looking at it, we'll see that our daily thought processes largely consist of pulling ideas and facts from both recent and distant mental archives, to apply them to solving our current problem. Once a fact has been "recalled from archive" it is then turned into "current knowledge" that is in the front of our mind. It's almost like using DASD, when you are operating in an environment that has HSM or some other dynamic file-archiving and recall mechanism. It's easy for us to make such a mental picture. The process can go the other way, too. If you write programs frequently, you'll see what I mean. And everybody else can sympathize as well, so you'll all understand how it goes. Have you ever written an involved program, had your "head in it" for weeks, and finally gotten it to work? Once the program has passed muster and it's working properly, you then tend to "forget about it and go on to the next thing." A couple of months later, you might barely remember that you ever wrote that program. If you happen to look at the source code a couple of YEARS later, you might ask yourself: "DID I EVER WRITE THIS?" Sometimes I actually feel that way myself, when I look at my old "MVS Tools" columns. Of course, residuals remain in the front of your mind, when you're reminded about your old work. You usually recall that you did it, but the details have been "archived" and you won't remember them, until after the "recall process" has been completed in your mind. You need something to "refresh your memory." So next comes the question: "How much of my knowledge should be 'recent', and how much should I allow to become 'archived'? Should I try to do a lot of 'recalls' so that more of my knowledge becomes recent? When does this pay, and when does it not pay?" Of course, if you're going for job interviews, you have to do a lot of "recalls from archive." If you're settled at a job, then there's some leeway to choose what to do. I have a few thoughts on that. REVIEW, REVIEW--AND HELP THE OTHER GUY How do you force a thought or a fact to be "recent"? The simplest way is by thinking about it. To keep that thought from being archived, you think about it again. And again, and again. It's just like managing HSM. If you keep on accessing the data (read "thought"), it won't be archived. I'll show you a real-life example. I am the proprietor of the CBT Tape collection of free MVS software tools, and as of this writing, there are over 670 non-null files on the "tape" (which really is a tape). I know most of the programs by their file number, since I'm involved with putting the tape together. I'm pretty good at remembering numbers. Especially, file numbers from my own contributions to the collection are not easily forgotten. So imagine my surprise this morning when somebody asked me about my SMP/E tools file (it is really File 118), and I couldn't recall the file number or any of the program names. I did manage to remember that the programs were meant to pre-process a PTF file (on tape or on disk) without using SMP/E, and sort the PTF numbers by their FMIDs and report line counts, etc. But I even forgot all the program names. And I wrote that stuff myself! So I looked up "SMP/E" in my CBT Documentation pds (a pds-izing of CBT Tape File 001 - see File 006 as to how to make that pds from File 001), using a PDS 8.5 text scan. The PDS85 command is: FIND : ?SMP/E? THEN(MEMLIST) The members which turned up included @FILE118, so that was enough to jog my memory and get the correct file number. Then I read the program names from the member, and I'm not going to forget them for a while. The two program names are PUTXREF and SMPUPD. If I really didn't want to forget this stuff, and if I felt that it's especially important, I'd make sure to print it out and read it over every day for a week or two. That certainly should help to keep it current in my mind. Or I'd make a mnemonic device, like "XU118" to stand for putXref and smpUpd which belongs to CBT Tape File 118. Then I could review the mnemonic "XU118" a bunch of times, so I don't forget it easily. (I'd still have to remember what XU118 actually stands for.) In either case, you manage your memory just like you deal with HSM. If you want to keep an item current, you do a lot of recalls. REVIEW, REVIEW! One way I keep "fresh" in my MVS knowledge is to ask other systems programmers what is bothering them--what current problems do they have on their mind? If you're not that gregarious and you don't talk to people that much, try reading through a daily digest of the IBM-Main newsgroup, to see discussions of many other people's problems. (To find out about IBM-Main, see my April 1998 column--member CL9804AP on File 120 of the CBT Tape--which has been updated since then.) When I have to grapple with a fresh problem, either a task at work, or to help someone else, it triggers a lot of "recalls" in my mind. So when that "data" is accessed, it returns again to the front of my mind. It's really just like HSM. You have to find excuses to do a lot of recalls. SUMMARY Sometimes you have to say to your mind: "What have you done for me lately?" The mind is, in a sense, very similar to HSM. If you don't access the data, it gets "archived". Archived data is more difficult to access than is "current data". It has to be "recalled" first. Facts in your mind are very similar. If you don't think about them, they go to the "back" of your mind instead of staying in the "front" where you can get right at them. To get them "back from the back", you have to do a type of "mental recall" which can be triggered by thinking about something related to that fact. So if you want to be sharp and fresh on any subject, including MVS topics, you have to do a lot of mental "recalls" to keep the data "current", "in front of your mind" instead of "in the back." You can either be proactive, and consciously trigger the "recalls" yourself, or you can be more passive, and let the circumstances trigger the recalls. It all depends on how important you think the information is, and on how non-lazy you are. In any case, it's good to know about this stuff. Heck, we have to use our minds to do this job! It's nice to know a little more about how our own minds operate. So I hope this month's piece has jogged your mind a wee bit. Best of everything to all of you! And I hope to see you here again next month.