I have JCL excerpt:
//*  ...
//DEL      EXEC PGM=IEFBR14
//HANDLE    DD  DISP=(MOD,DELETE),UNIT=SYSALLDA,
//  DSN=&PFX..CBTINDEX,
//  SPACE=(80,(9999,9999,1)),DSNTYPE=LIBRARY
//*
//SPLITIT  EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT  DD  SYSOUT=(,)
//SYSIN     DD  DISP=OLD,DSN=*.INSERT.OUTPUT
//HANDLE    DD  DISP=(MOD,CATLG),UNIT=SYSALLDA,
//  DSN=&PFX..CBTINDEX,
//  SPACE=(80,(9999,9999,1)),DSNTYPE=LIBRARY
//SYSUT2    DD  DISP=OLD,DSN=*.HANDLE,VOL=REF=*.HANDLE
//
... which fails with SYSPRINT:
1       SYSIN                            NEW MASTER                             
           IEBUPDTE LOG PAGE 0001
-       ./ ADD NAME=$$$$$$$$
        //MVSMODS1 JOB 527TEC000S0003,TEC,CLASS=8,MSGCLASS=5,PRTY=10,           
DOC FILE
 IEB814I DDNAME SYSUT2   CANNOT BE OPENED.
 IEB818I HIGHEST CONDITION CODE WAS 00000012
 IEB819I END OF JOB IEBUPDTE.

However:
//*  ...
//DEL      EXEC PGM=IEFBR14
//HANDLE    DD  DISP=(MOD,DELETE),UNIT=SYSALLDA,
//  DSN=&PFX..CBTINDEX,
//  SPACE=(80,(9999,9999,1)),DSNTYPE=LIBRARY
//*
//SPLITIT  EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT  DD  SYSOUT=(,)
//SYSIN     DD  DISP=OLD,DSN=*.INSERT.OUTPUT
//SYSUT2    DD  DISP=(MOD,CATLG),UNIT=SYSALLDA,
//  DSN=&PFX..CBTINDEX,
//  SPACE=(80,(9999,9999,1)),DSNTYPE=LIBRARY
//* SUT2    DD  DISP=OLD,DSN=*.HANDLE,VOL=REF=*.HANDLE
//
... succeeds and creates the expected few hundred members in SYSUT2.
What makes the difference?  Is DISP=OLD incompatible with PARM=NEW?
But DISP=MOD is OK, but in either case the data set is allocated before
IEBUPDTE is entered.

Enlighten me?  I've used the referback trick before, but only on DSORG=PS,
in order to eliminate the (MOD,DELETE) setup step.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to