Copyright 1992-2016 by Kevin G. Barkes All rights reserved. This article may be duplicated or redistributed provided no alterations of any kind are made to this file. This edition of DCL Dialogue is sponsored by Networking Dynamics, developers and marketers of productivity software for OpenVMS systems. Contact our website www.networkingdynamics.com to download free demos of our software and see how you will save time, money and raise productivity! Be sure to mention DCL Dialogue! DCL DIALOGUE Originally published June, 1992 When Your Number's Up By Kevin G. Barkes I have a friend who manages an ancient 780 that has been in constant service since 1979. The old VAX has been employed in recent years primarily as a batch engine, running routine accounting reports and other non-critical jobs. The venerable machine had hummed along for three years without a service call; a good thing, too, since management had slated it for the scrap heap whenever the inevitable "big" failure finally occurred. The honchos were quite specific about it: no time was to be wasted when the old fella went belly up. Shut it down and call maintenance. So when operators and users starting complaining about job runs blowing up for no reason and the 780 started exhibiting other bizarre behavior, it seemed like the end was near. Sam, the defacto system manager, got the call from the front office to pull the plug. A sentimental kinda guy, Sam called to invite me to the machine's wake. Over cans of Jolt and a carefully preserved box of Screaming Yellow Zonkers, Sam toasted the old VAX's years of dedicated service. Having completed a standalone backup of the system, he rebooted it one last time to copy files to other nodes for processing. That's when we noticed the printout on the operator's console: %CREATE-E-OPENOUT, error opening SYS$SYSROOT:[SYSMGR]BATCHLOG.LOG; as output -RMS-E-CRE, ACP file create failed -SYSTEM-W-BADFILEVER, bad file version number Puzzled, we waited for the VAX to complete its boot. Sam logged in and did a directory of SYS$MANAGER and discovered several .LOG files with a version number of 32767, the highest version number permitted under VMS. Apparently, while old logs were purged at each startup, no one kept tabs on file version numbers. The VAX was rebooted every morning, a practice started in the distant past to reset some long-gone piece of whacko, site-specific hardware. It was carried on by several generations of operators who never bothered to ask about the peculiar ritual. After more than a decade of daily reboots, the .LOG files had finally incremented to VMS' impenetrable version limit ceiling. This caused a number of programs, including the command file which managed the old VAX's queue operations, to fail when they were unable to create a new log file. Sam set his default to SYS$MANAGER, did a $ PURGE *.LOG and a RENAME *.LOG *.LOG;1. A short reboot later, the old 780 picked up where it had left off and continued happily batching away. Sam stashed the half-consumed box of Zonkers in the cabinet housing the console media. He patted the side of the aging iron beast. The console spit out the message: %BATCHMON - All queues started and running. %BATCHMON - Have a good day. We killed the lights and headed for the local bar. *********** OOPS AGAIN Richard Black of USAA notes that his PURGE_MIDDLE.COM procedure (DCL Dialogue, March 1992) doesn't work as advertised. For some reason, the DELETE command doesn't accept relative version numbers. This is documented behavior, but one that conflicts with the operation of most other commands. My guess is DELETE is thusly inhibited to avoid accidental deletions. Fortunately, there's a workaround to the problem (See Program 1). Note also the procedure as written works only on files in your default directory. You'll have to add additional F$PARSE statements to obtain the device and directory names of the target files. HOWDY, KEN Ken Olsen of Maynard, MA logged onto my BBS the other day. Unfortunately, he didn't complete the online registration, so I couldn't give him full access to the system. Then again, he was only on for four minutes. Guess he just wanted to check out the quote for the day. (Some friendly advice, Ken: pick a better password. "Digital" is just too obvious.) BE CAREFUL WHAT YOU WISH FOR A few issues ago I complained about DEC's seeming inability to handle my recent change of address. I mailed scores of my pre-printed change notices to all the various DEC mail stops in Massachusetts and New Hampshire. After four months, things have started to happen. DEC Educational Services in Burlington, MA gets the prize for most interesting response. The aforementioned change of address card listed all the businesses and individuals at my address. So, the mail truck pulled up today with copies of the spring Education and Training Digest for me, my wife, my father, my son and my daughter. Good thing I didn't put the dog and cats' names on the card. But I'm not complaining. I received fifteen notices of an Open Systems conference from my local sales office. At this rate, I can pay for the maintenance on my VAXstation by recycling all that paper... TED, ARE YOU LISTENING? I know the DEC Pro is read by several sharp technical people within the Turner Broadcasting empire, so permit me to ask a small favor. I watch CNN while in my office and am constantly distracted by the beeping of the VT terminals next to the news anchors' desks. More than once I've run across the office to see what operator alarm was sounding on my VAX only to find that someone in Atlanta sent Bernie Shaw a mail message. Howzabout turning off the bells? (One can only hope Mr. Turner's new all-cartoon cable channel will be bell-less.) *************************** Kevin G. Barkes is an independent consultant who watches too much cable television and recently viewed all 58 hours of Nick at Nite's Dick Van Dyke Collection. He is also an avid Dragnet fan. Kevin lurks on comp.os.vms and can be reached at kgbarkes@gmail.com. ************************** PROGRAM 1: $! Deletes all but the highest and lowest version $! of a file. $! $ FILE = F$PARSE(P1,,,"NAME")+F$PARSE(P1,,,"TYPE") $ HI = F$PARSE(F$SEARCH(FILE+";0"),,,"VERSION") $ LO = F$PARSE(F$SEARCH(FILE+";-0"),,,"VERSION") $ FILE_HIGH = FILE + HI $ FILE_LOW = FILE + LO $ DELETE/EXCLUDE=('FILE_HIGH','FILE_LOW') 'FILE';*