MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Question on the VOL parm of the DD card

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL)
View previous topic :: View next topic  
Author Message
gkreth
Beginner


Joined: 28 May 2004
Posts: 29
Topics: 10

PostPosted: Wed Jul 21, 2004 10:40 am    Post subject: Question on the VOL parm of the DD card Reply with quote

Gurus,

I have strange-looking (to me, anyway) parm:
Code:
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=(CART,,DEFER),(VOL=,,,20),
//            SPACE=(CYL,(2000,500),RLSE),
//            DCB=(LRECL=786,BLKSIZE=0,RECFM=FB,BUFNO=20)

Our shop JCL checker (JCLPLUS) flags the open paren of the VOL parm as an error:
Code:
 !!!ERROR  8: INVALID KEYWORD PARAMETER: (

And I would tend to agree with that. I would have thought the correst syntax would have been:
Code:
//            UNIT=(CART,,DEFER),VOL=(,,,20),
(Note the open paren now comes after the equals sign.)

However, this is how the job is in our prod environment, and it has been running for quite some time this way.

I'm making other changes to the JCL, and I'm considering changing the parm and moving the open parentheses after the equals sign. However, I'm concerned that I may inadvertantly introduce some other sort of error. I'm not real familiar with cartridge tape usage and that sort of thing.

Can anyone tell me if there may be some specific reason WHY it might be coded as it currently is? Also, can someone confirm that my proposed change will not screw anything up; i.e., is
Code:
(VOL=,,,20)
and
Code:
VOL=(,,,20)
functionally identical?

Thanks for any advice or comments.

--Greg
Back to top
View user's profile Send private message
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Wed Jul 21, 2004 10:56 am    Post subject: Reply with quote

Greg,

Are you sure that
Code:

//            UNIT=(CART,,DEFER),(VOL=,,,20),


is NOT commented?

There is an allocation in cylinders also via SPACE parameter. So I assuming that UNIT parameter is commented out.

And you can simply code
Code:
 
VOL=(,,,20)
for achieving the same functionality
Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
gkreth
Beginner


Joined: 28 May 2004
Posts: 29
Topics: 10

PostPosted: Wed Jul 21, 2004 5:34 pm    Post subject: Reply with quote

kolusu,

Yep, I'm 100% sure the code is not commented out. It's actually an override to a proc. Here's exactly what it looks like:
Code:
//MI  EXEC MIB21001,
//        CATID=TGPROD,
//        SORTLIB=TGPROD,
//        CNTLLIB=TGPROD,
//        SRTSPC1=800,
//        UNIT=SYSDA
//*
//*  FOLLOWING OVERRIDES ALLOCATE LARGE PRIMARY EXTENTS BECAUSE THE
//*  SYSTEM WAS NOT ALLOWING ENOUGH SECONDARY EXTENTS TO BE ALLOCATED.
//*
//STEP020.SORTOUT  DD UNIT=(CART,,DEFER),(VOL=,,,20)
//STEP020.SORTWK01 DD SPACE=(CYL,(2200,500),RLSE)
//STEP020.SORTWK02 DD SPACE=(CYL,(2200,500),RLSE)
//STEP020.SORTWK03 DD SPACE=(CYL,(2200,500),RLSE)
//STEP020.SORTWK04 DD SPACE=(CYL,(2200,500),RLSE)
//*
//STEP030.SORTOUT  DD UNIT=(CART,,DEFER),(VOL=,,,20)
//STEP030.SORTWK01 DD SPACE=(CYL,(2200,500),RLSE)
//STEP030.SORTWK02 DD SPACE=(CYL,(2200,500),RLSE)
//STEP030.SORTWK03 DD SPACE=(CYL,(2200,500),RLSE)
//STEP030.SORTWK04 DD SPACE=(CYL,(2200,500),RLSE)
//*
//STEP050.SORTOUT  DD UNIT=(CART,,DEFER),(VOL=,,,20)
//STEP050.SORTWK01 DD SPACE=(CYL,(2200,500),RLSE)
//STEP050.SORTWK02 DD SPACE=(CYL,(2200,500),RLSE)
//STEP050.SORTWK03 DD SPACE=(CYL,(2200,500),RLSE)
//STEP050.SORTWK04 DD SPACE=(CYL,(2200,500),RLSE)
//                                               


And here are the relevant parts of the proc:
Code:
//STEP020  EXEC PGM=SORT,COND=(0,NE)
//SORTIN   DD DSN=&CATID..MIX10000.UNSORTED.TEMP.EXT,
//            DISP=(OLD,DELETE,KEEP),DCB=BUFNO=20
//SORTOUT  DD DSN=&CATID..MIX10000.SORTED.TEMP.EXT,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=&UNIT,SPACE=(CYL,(2000,500),RLSE),
//            DCB=(LRECL=786,BLKSIZE=0,RECFM=FB,BUFNO=20)
//SORTWK01 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK02 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK03 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK04 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SORTMSG  DD SYSOUT=*
//SYSIN    DD DSN=&SORTLIB..SORTCARD.LIB(MIS00004),DISP=SHR
...
//STEP030  EXEC PGM=SORT,COND=(0,NE)
//SORTIN   DD DSN=&CATID..MIX10050.UNSORTED.LOAN.EXT,
//            DISP=(OLD,DELETE,KEEP),DCB=BUFNO=20
//SORTOUT  DD DSN=&CATID..MIX10050.SORTED.LOAN.EXT,
//            DISP=(NEW,CATLG,DELETE),
//            UNIT=&UNIT,SPACE=(CYL,(2000,500),RLSE),
//            DCB=(LRECL=770,BLKSIZE=0,RECFM=FB,BUFNO=20)
//SORTWK01 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK02 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK03 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SORTWK04 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,150),RLSE)
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SORTMSG  DD SYSOUT=*
//SYSIN    DD DSN=&SORTLIB..SORTCARD.LIB(MIS00002),DISP=SHR
...
//STEP050  EXEC PGM=SORT,COND=(0,NE)
//SORTIN   DD DSN=&CATID..MI.MIX10100.UNSORT.LOAN.EXT,
//            DISP=(OLD,DELETE,KEEP),DCB=BUFNO=20
//SORTOUT  DD DSN=&CATID..MI.MIX10100.SORT.LOAN.EXT,
//            DISP=(NEW,CATLG,DELETE),UNIT=&UNIT,
//            SPACE=(CYL,(2000,500),RLSE),
//            DCB=(LRECL=1044,BLKSIZE=0,RECFM=FB,BUFNO=20)
//SORTWK01 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,300),RLSE)
//SORTWK02 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,300),RLSE)
//SORTWK03 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,300),RLSE)
//SORTWK04 DD UNIT=&UNIT,SPACE=(CYL,(&SRTSPC1,300),RLSE)
//SYSPRINT DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SORTMSG  DD SYSOUT=*
//SYSIN    DD DSN=&SORTLIB..SORTCARD.LIB(MIS00001),DISP=SHR

It appears the datsets are simply too large for DASD, so the UNIT overrides were done to write the data to cartridge tape. Also, the primary space on the SORTWKnn cards has a symbolic parm, but the secondary space does not; this appears to be why the SPACE parm was overridden.

And, as you can see, there's that weird (VOL=,,,20), which gets flagged in the JCLPLUS syntax checker, but apparently runs every weekend just fine. Now, the JCL is executed via a job scheduler; maybe it "cleans up" stuff like this? (I think, buyt can't remember now for sure, that I tried to submit the JCL directly in TSO, and that it bombed with a JCL error.

I think in the walkthru I'm going to suggest that we modify the VOL parm, just so oit looks "normal."

Thanks!

--Greg
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Job Control Language(JCL) All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group