Hi, We have many jobs that look like this: //STEP230 EXEC PGM=ICETOOL //DFSMSG DD SYSOUT=* //TOOLMSG DD SYSOUT=* //TOOLIN DD * COPY FROM(INP0101) TO(OUT0101) COPY FROM(INP0201) TO(OUT0201) //INP0101 DD DISP=SHR,DSN=DSNI1 //INP0201 DD DISP=SHR,DSN=DSNi2 //* //OUT0101 DD DSN=DSNO1, // DISP=(,CATLG,DELETE),UNIT=TAPEC //OUT0201 DD DSN=DSNO2, // DISP=(,CATLG,DELETE),UNIT=TAPEC,LABEL=2, // VOL=(,,,99,REF=*.OUT0101)
The actual jobs copy more than two datasets. Originally, TAPEC was on tape, so the output datasets were stacked. Many years ago, we converted the output to DASD. TAPEC is now a storage group. To do this we coded a DATACLAS ACS routine, that assigns a DATACLAS to these output files and adds SPACE information. This worked great in z/OS v2.4 (and probably z/OS v2.2 before that). We've now upgraded to z/OS v3.1 and something broke. The first output dataset works fine, but the second and subsequent output datasets break with the message: IGD17045I SPACE NOT SPECIFIED FOR ALLOCATION OF DATA SET DSNO2. The application people say that they have 130 of these jobs, and they are not keen on changing them. I started playing with the DATACLAS ACS routine and found that the VOL= Clause is causing the problem. If I remove it from the job, everything works fine. When I added some WRITE statements to the DATACLAS ACS routine, I found that the statement that actually assign the DATACLAS to these output datasets does not get executed. My DATACLAS ACS ROUTINE is: PROC DATACLAS FILTLIST DB2D_FILES INCLUDE(DB2D.**) FILTLIST DB2P_FILES INCLUDE(DB2P.**) FILTLIST DB2P_ARCHLOG2 INCLUDE(DB2P.ARCHLOG2.**) FILTLIST TMP_FILES INCLUDE(KVPO.TMPCTR.**) IF &DSN = &TMP_FILES THEN SET &DATACLAS = 'EXT' IF &DSN = &DB2D_FILES AND &UNIT = '3390' THEN SET &DATACLAS = 'EXT' IF &DSN = &DB2P_FILES AND &STORCLAS ¬= '' THEN DO WRITE 'DB2P - 1- ' &DSN SET &DATACLAS = 'EXT' END IF &DSN = &DB2P_FILES THEN DO WRITE 'DB2P - 2- ' &DSN SET &DATACLAS = 'EXT' END IF &JOB = 'PKTD0534' THEN DO WRITE 'PKTD0534 ANYVOL -' &ANYVOL WRITE 'PKTD0534 ALLVOL -' &ALLVOL WRITE 'PKTD0534 UNIT -' &UNIT '-' WRITE 'PKTD0534 DATACLAS -' &DATACLAS END IF &STORCLAS = 'TAPEC' AND &DATACLAS = '' THEN SET &DATACLAS = 'TAPEC' IF (&STORCLAS = 'TAPE') THEN SET &DATACLAS = 'DC6G' IF &DSN = &DB2P_ARCHLOG2 THEN SET &DATACLAS = 'DC6G' IF &STORCLAS ¬= '' THEN EXIT IF (&UNIT = 'TAPEC') AND &DATACLAS = '' THEN DO WRITE 'PKTD0534 B ALLVOL -' &ALLVOL SET &DATACLAS = 'TAPEC' END IF &JOB = 'PKTD0534' AND &ANYVOL='REF=SD' THEN DO WRITE 'PKTD0534 C UNIT -' &UNIT WRITE 'PKTD0534 C ANYVOL -' &ANYVOL SET &DATACLAS = 'TAPEC' END IF (&UNIT = 'TAPEV') AND &DATACLAS = '' THEN SET &DATACLAS = 'DC6G' IF (&UNIT = '3490') AND &DATACLAS = '' THEN SET &DATACLAS = 'DC6G' END I've left the WRITE statements in the routine. The job I was using to test is PKTD0534. Can anyone see what the problem is, and suggest a fix? Gadi ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN