HP OpenVMS Systems

Resubmitting DCL and batch failures?

Dear Wizard,
I have batch job that runs from approximately 8:00am to 8:00pm daily that
collects Monitor performance statistics. Before shutting down for the night,
it resubmits itself for the following day.
Occasionally (perhaps 1 out of 20 days), the job fails to restart the next
morning. The log file says only this:
Error opening primary input file SYS$INPUT
File not found
KING job terminated at 1-JUN-2000 07:57:25.95
I'm not sure what this error means. It doesn't have a standard error format and
the .COM file it is trying to run looks fine.
Any thoughts?
Thanks
Kevin King

The Answer is :

The:
Error opening primary input file SYS$INPUT
File not found
error means precisely what it says. The batch procedure was not found.
The most likely cause for this error is that someone (perhaps youself)
has editted the command procedure and purged away the old version.
When you submit a batch job, the queue manager remembers the exact file
which was submitted, using the File ID (FID), NOT the name. This is a
security feature to ensure that only the file which was submitted will
run. So even if there is a procedure with the same name (even the same
version number) as the originally submitted procedure, if the original
file has been deleted, the job will fail and the above message written
tothe log file. If you modify the procedure, you will have to delete the
existing batch queue entry and resubmit the new procedure.
For jobs which resubmit themselves, you may want to be able to modify
the procedure and have the new version used the next time the job is
submitted. The following DCL will submit the latest version of the
currently executing procedure to execute at 8am the following day:
$ ThisProcedure=F$ELEMENT(0,";",F$ENVIRONMENT("PROCEDURE"))
$ SUBMIT/AFTER="TOMORROW+0-8:00" -
'ThisProcedure' -
/PARAM=("''p1'","''p2'","''p3'","''p4'",-
"''p5'","''p6'","''p7'","''p8'")
Another solution variation possible involves submitting a stub DCL
command procedure, a procedure which invokes the "real" procedure and
that also resubmits itself. The contents of this "stub" procedure are
deliberately kept simple, and are thus not modified. The "real" DCL
procedure can be modified, and the most current version will be invoked
when the batch job -- the stub procedure -- runs.