Let's get ourselves on the same page -- now that I have things working as
well as I can.
This is not a multiple step batch job running REXX. The REXX code is
reading a file produced by another REXX that ran under ISPF.
"Why would you do that?!?" you ask.
Because of penalties that a user gets for doing batch work under TSO. In
a worse case scenario, this REXX tool that I'm writing will be running, in
batch, for an hour doing massive amounts of I/O across many data sets
(DSORG=PS & PO) along with files in the HFS. Try this in a TSO session and
your terminal will be hung for hours, and someone will have to hit <ENTER>
every so often to get rid of the "***" that will appear at the bottom of
the screen now and then (and that's with all user selectable diagnostics
off, and minimal use of SAY for audit trail requirements)
To give you an idea, just the time it takes to find and determine which
files to copy to the PDSes takes up to 5 minutes in the TSO/ISPF session.
NO processing of the files themselves, just running the selection criteria
to capture the full path names (for ocopy in the batch REXX). .
The processing of the selected files is done with a REXX running a large
loop. We have been talking about, so far, the problems with all the
hassles I've had with source that have been edited on other platforms to
be compiled on MVS/VM.
IEBGENER doesn't do what I need (first thing I tried). ocopy does for 90+%
of what I need (I had to write some special REXX code to solve the
show-stopper 10%).
EXECIO gives RC=1 when it truncates a record (something ocopy should have
done). But when it can't write to the PDS for any reason, it gives RC=20.
So I need to know why it gave the RC=20. Blindly calling IEBCOPY for a
compress in place may be a waste of cycles because we may have a different
problem that has to be fixed.
OUTTRAP does not capture these messages. MSG(ON) does not capture them,
only causes them to be written to SYSTSPRT.
Ending the step and then starting again with a new step is not feasable,
because you can only have so many steps in a JOB and you can't jump
backwards...
I really need to be able to write some REXX functions or exits to solve
these problems, but I have not been given the authority to do this.
Everything has to be CLIST/REXX, TSO Commands, ISPF/PDF functions, and/or
IBM utility programs.
So, I've gotten things to work as best as I can for now. Now I'm off to
the next set of things that have to be done before I have to go do the
related versions of this on VM (where errors during I/O can be diagnosed
inside of REXX).
Thanks for the brain storming,