View previous topic :: View next topic
|
Author |
Message |
Ashishpanpaliya
New User
Joined: 13 Oct 2017 Posts: 34 Location: India
|
|
|
|
I am doing the impact analysis to trace back the file. Since SYSIN DD is dummy, therefore its will do nothing on SYSUT1 and SYSUT2.
But I couldn't understand the purpose of Nullfile. I tried to investigate in manual/google but couldn't find anything. Apologies if I missed anything.
Code: |
//GEN01 EXEC PGM=ICEGENER
//SYSIN DD DUMMY
//SYSPRINT INCLUDE MEMBER=$$BETAPN
//STUFF SET STUFF=YG JUST TO USE THIS VARIABLE
//SYSPRINT DD SYSOUT=X
//* END OF RZ$GEN
//NULLFILE DD DSN=CV.G.SENDZG(+1),
// DISP=(,CATLG,DELETE),
// DCB=(GDG.MODEL,RECFM=VB,BLKSIZE=6012,LRECL=3004),
// SPACE=(CYL,(5,1),RLSE)
//SYSUT1 DD DSN=CV.G.SENDZG,
// DISP=(OLD,DELETE,KEEP)
//SYSUT2 DD DSN=YG.G.PVZ.VZFFZO(+1),
// DISP=(,CATLG,DELETE),
// DCB=(GDG.MODEL,RECFM=VB,BLKSIZE=6012,LRECL=3004),
// SPACE=(CYL,(12,1),RLSE) |
|
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
IIRC a IEBGENER/ICEGENR with no SYSIN should copy SYSUT1 to SYSUT2
the NULLFILE dd will simply allocate a new generation of CV.G.SENDZG |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
therefore its will do nothing on SYSUT1 and SYSUT2. |
This is not right. IEBGENER / ICEGENER will copy SYSUT1 to SYSUT2 by default; the lack of SYSIN will not impact that.
My interpretation is that the job is using NULLFILE to ensure there is at least one generation of CV.G.SENDZG so the DELETE has something to delete, no matter what. Once the step completes, CV.G.SENDZG will have no generations while YG.G.PVZ.VZFFZO will have one additional generation. |
|
Back to top |
|
|
Ashishpanpaliya
New User
Joined: 13 Oct 2017 Posts: 34 Location: India
|
|
|
|
Thanks Robert. I think your interpretation makes sense. |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2455 Location: Hampshire, UK
|
|
|
|
If my thinking is correct (big IF!) the method used works because the +1 is not actually catalogued until the end of the step so it will not be included in the SYSUT1 concatenation. On the downside, NULLFILE is not a DDNAME known to ICEGENER so the +1 is not opened and closed so it will have 5 cylinders of whatever data was at that place on disk before (a problem we encountered many moons ago after which the rule was to ALWAYS open and close new data sets even if they are not being written to.
By the way, that is an attrocious block size for SYSUT2. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
I might be blatantly wrong but ...
IIRC from some level of SMS/zOS allocation will write an end of file
IMO the setup relies on too many assumptions ...
that the system will write an end of file at allocation
that the generation will be processed in the last defined -first processed order
(not to be caught in the empty dataset in the middle of the concatenation issue )
if all that stands the jcl can be rerun as is with no JCL errors |
|
Back to top |
|
|
|