Geez you guys are so nerdy!! :-) Ray Shahan Life is not a journey to the grave with the intention of arriving safely in a pretty and well preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming: -- WOW!!! What a Ride! -- > -----Original Message----- > From: Ken Hirsch [SMTP:[log in to unmask]] > Sent: Friday, March 26, 2004 1:12 PM > To: [log in to unmask] > Subject: Re: [HP3000-L] LINKEDIT CLEANXL problem? > > From: "Tracy Pierce" <[log in to unmask]> > > The question's still open, and seems to revolve around the actual > function > > of CLEANXL - is there a temp file involved and a moment of no XL file? > > Duane suggests that I adjust my BUILDXL; while I'm sure it's my code > that's > > clobbering the XL, it should never get the opportunity - that buildxl is > in > > there for those times when I want a REALLY clean system and simply purge > the > > XL before starting. > > I suggest you serialize access to the XL using some other mechanism. You > can > use job queues as Paul Christidis suggests. Or, since you're using MPEX, > it's > also fairly simple to lock a file as a proxy for the access to the XL file > (which you can't lock). > > I use two brief MPEX command files, LOCKFILE and UNLOCKFL for similar > purposes. It would work like this: > > LOCKFILE XLLOCK.!EXE > do all your XL stuff here > UNLOCKFL > > Where LOCKFILE is this: > PARM LOCKNAME > > setjcw INSIDEMPEX 0 > IF INSIDEMPEX <> 1 > ECHO ERROR: This program (!HPFILE) must be run from MPEX > SETJCW JCW -1 > ESCAPE > ENDIF > > SETVAR LOCKFNUM VEFOPEN("!LOCKNAME,OLD;MAYBUILD;ACC=IN;SHR;LOCK") > SETLVAR FLOCK VEFLOCK(lockfnum, TRUE) > #*********************************************** > > and UNLOCKFL is this: > # Unlocks the file that was locked in LOCKFILE.SCRIPTS, q. v. > # Note that the file descriptor is stored in global CI variable LOCKFNUM > > SETLVAR FLOCK VEFUNLOCK(LOCKFNUM) > SETLVAR FLOCK VEFCLOSE(LOCKFNUM) > #*********************************************** > > Your job stream might look like this (untested) > LOCKFILE XLLOCK.!EXE > IF NOT FINFO ("XL.!'EXE'","EXISTS") > warnf !WHO2TELL !hpjobnum !hpjobname @No XL.!"EXE" found!!!, building > i > CONTINUE > LINKEDIT "BUILD XL.!EXE" > ENDIF > SETJCW CIERROR 0 > ECHO XL XL.!"EXE" > LINKCMDS > ECHO ADDXL O!"PGM".!"OBJ";REPLACE;SHARE >> LINKCMDS > ECHO CLEANXL;COMPACT >> LINKCMDS > ECHO EXIT >> LINKCMDS > CONTINUE > RUN LINKEDIT.PUB.SYS;STDIN=LINKCMDS > IF LKEDSTAT = 0 > TELL !WHO2TELL ADDXL O!"PGM".!"OBJ" to XL.!"OBJ" looks ok > SETVAR ADDXL_OK 1 > ELSE > SHOWJCW CIERROR > SETVAR ADDXL_OK 0 > TELL !WHO2TELL ADDXL O!"PGM".!"OBJ" 2 XL.!"OBJ" failed. > IF LKEDCMD = 1112 OR LKEDCMD = 1106 > SET STDLIST=SAVE > TELL !WHO2TELL Can't open XL.!EXE > SETVAR ADDXL_OK 0 > SETVAR SAVESPOOLFILE 'Y' > EOJ > ENDIF > ENDIF > UNLOCKFL > > * To join/leave the list, search archives, change list settings, * > * etc., please visit http://raven.utc.edu/archives/hp3000-l.html * > > > > ======================================================================== > This e-mail message has been scanned for Viruses and Content and cleared > by School Specialty's email filtering solution. * To join/leave the list, search archives, change list settings, * * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *