The operator selects the run range he wants re-reconstructed with a Rexx exec in UNIX and then submits jobs for those runs to VMS from UNIX. The HAD datasets are copied to disk, the re-recon job uses those files as input, writes recon and miniDST output to the staging-out areas and then erases the input disk file.
A difference from the original PASS2 is that the CRID recon is performed and that the output dataset is augmented with CRDAEB. The job also writes out the miniDST as a separate dataset.
As for the MC Farm, the re-recon is described by a .TASK file which identifies the re-recon by name; specifies a run range; IDA and SETUP files for defining the job environment; code version desired; and a comment. A typical .TASK file is shown:
Task: REC93V11 Rec_Ida: disk$sld_usr0:[sldpm]RECV11 Setup_file: disk$sld_usr0:[sldpm]REC93V11_SETUP Run_Period: 15774 23000 Code_Version: 12.0 Comments: Version 12 re-recon of '93 data
A task log file for the jobs run for a given task are stored in the [SLDPM] directory. Individual run log files are kept in $scr:[SLDPM].
The current solution is to copy the input tape files to disk one tape at a time prior to a batch of runs being processed. When the recon jobs successfully complete, they erase their input file from disk. Currently the input disk pool is a 4 GB disk on SLDA6: disk$sld_rec_stg. When there is sufficient space on the disk, another batch of runs can be submitted.
Since a good deal of Oracle querying must be done, the job submission is done on a platform with easy Oracle access. UNIX has been chosen for its Rexx Oracle interface and ease of NFS access to VMS disks and vice versa. All the relevent files are kept in /u/ey/sldpm/recon.
setenv TWO_TASK t:slacvm:,,idnc,iiuty
A file, 'task'.cron, tells cron what to run and at what interval. tcron.rex sets up the proper environment and calls tapesub.rex which looks at the 'task'.report file to see what the last submitted tape was and submits the next (if there is space for it). tapesub creates a file, 'task'.tapes, to list all the tapes containing the runs in the task. As each tapecopy job is submitted, it will update a file, 'task'.report, to keep track of what has been done. When all tapes match up with the .tapes file, the task is complete.
The method for submitting the crontab file is to prepare a file 'task'.cron which looks like
0,30 * * * * /nfs/juno/u18/ey/sldpm/recon/tcron.rex "rec93v11" >> /nfs/juno/u18/ey/sldpm/recon/rec93v11.cronlog
where the task name appears twice. To submit the task to crontab,
crontab 'task'.cron
Note that the cron job is specific to the node you submitted the crontab command on. Other nodes will not know about it.
Each time the timed job runs, it echoes into the file 'task'.cronlog. After the task is complete disable the cron job by
crontab -r
Instructions for resubmitting failed jobs follows.
Recsub.rex prepares a .COM file which will be submitted to SLACVX to perform the tape copy onto the buffer disk and then submit the individual run-by-run recon jobs. The .COM file is left around as hadcopy'time'.com (to make it unique)
rxx recsub.rex 'task' run_begin run_end [( NOCOPY VAX DEBUG]to submit the individual runs to SLACVX. The NOCOPY option tells recsub that the input dataset is still on disk. The jobs are submitted by the tape copy job as each file gets copied to disk. The tape copy .COM file is placed in SLDPM's scratch area on SLACVX along with another .COM file, release'time'.com, which has all the job submission commands. Note that if you use any of the options you'll need to enclose the entire argument string to recsub in single quotes (UNIX gets annoyed at the single open parenthesis.
recsub.rex submits the jobs to the VAX cluster via rsh. It will echo each run that it submits.
A utility, howmanytapes.rex, queries Oracle about the number of tapes occupied by a given run range:
rxx howmanytapes.rex run_begin run_endwill tell you how many and which tapes occupy that run range.
A log is kept of the job submission requests from UNIX in ~sldpm/recon/'task_name'.report. This file chronicles the time and run range for each submission.