Author: prino
Posted: Sun Oct 16, 2016 2:30 am (GMT 5.5)
I've got it working, but I've stumbled upon a subtle difference between JCL and REXX regarding the allocation of datasets that are never opened.
Take the JCL:
and the REXX that I used to replace it:
They should be equivalent, but they are not!
The dataset in the JCL is not opened until version 36 of the program and at that stage it's compared to the previous one (which of course was never opened). In both cases ISRSUPC (SuperC) doesn't care, and it produces a file with just I(nserts) as differences and ends with an RC=1. This signals that the process needs to change the old file and that's done using SORT.
And there the difference occurs, in the JOB, SORT falls over with an RC=16
as the dataset was never opened.
However, the datset allocated in the REXX exec (both with, and without the "DSORG(PS)") is OK, and SORT copies an empty dataset.
I solved the "problem" by removing the
from the TSO alloc command, but as for the why?
Why?
_________________
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
No programming here (yet)![icon_smile.gif]()
Posted: Sun Oct 16, 2016 2:30 am (GMT 5.5)
I've got it working, but I've stumbled upon a subtle difference between JCL and REXX regarding the allocation of datasets that are never opened.
Take the JCL:
Code: |
//WEEKOUT DD DSN=&SYSUID..&TY.&TID..&L.W&PID, // DISP=(,CATLG), // UNIT=&DASD, // SPACE=(TRK,(10,10),RLSE), // DCB=(RECFM=FBA,LRECL=121,BLKSIZE=0) |
and the REXX that I used to replace it:
Code: |
"alloc f("ll.i") da("!g.0dsn_n.i") " ||, "new reu " ||, "dsorg(ps) " ||, "space(180,60) " ||, "recfm(f b) lrecl(121) blksize(0)" |
They should be equivalent, but they are not!
The dataset in the JCL is not opened until version 36 of the program and at that stage it's compared to the previous one (which of course was never opened). In both cases ISRSUPC (SuperC) doesn't care, and it produces a file with just I(nserts) as differences and ends with an RC=1. This signals that the process needs to change the old file and that's done using SORT.
And there the difference occurs, in the JOB, SORT falls over with an RC=16
Code: |
ICE043A 3 INVALID DATA SET ATTRIBUTES: SORTIN BLKSIZE - REASON CODE IS 12 |
as the dataset was never opened.
However, the datset allocated in the REXX exec (both with, and without the "DSORG(PS)") is OK, and SORT copies an empty dataset.
I solved the "problem" by removing the
Code: |
recfm(f b) lrecl(121) blksize(0) |
Why?
_________________
Robert AH Prins
robert.ah.prins @ the.17+Gb.Google thingy
No programming here (yet)
