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 *
|