Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

DFSMSdss full volume backups JCL when exceeding single tape

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> IBM Tools
View previous topic :: :: View next topic  
Author Message
Alan Playford

New User


Joined: 22 Aug 2012
Posts: 8
Location: UK

PostPosted: Thu Feb 05, 2015 4:50 pm    Post subject: DFSMSdss full volume backups JCL when exceeding single tape
Reply with quote

Guys,
I've got a really silly problem to which the answer is eluding me right now?

We backup all our volumes to 3590 cart using a job which does the following:
1) Generate the DFDSS input card to a temporary &&DUMPOPTS file
Card contains "DUMP FULL .... IDD(DASD) ODD(TAPE) ..." etc

2) Defines inline PROC using symbolics for volser, output dsn, tape label etc
i.e.
Code:
//DUMPIT   PROC DVOL=INVVOL,                                         
//             TUNIT=600,                                           
//             TVOL='001016,001017',                                 
//             TLBL=0,                                               
//             PRM=''                                               
//DUMPSYST EXEC PGM=ADRDSSU,REGION=0M,PARM='&PRM'                   
//SYSPRINT DD SYSOUT=*                                               
//DASD     DD UNIT=3390,VOL=SER=&DVOL,DISP=SHR                       
//TAPE     DD DSN=BACKUP.V&DVOL..FULL,LABEL=(&TLBL,SL),             
//            DISP=(NEW,KEEP),                                       
//            UNIT=(&TUNIT,,DEFER),                                 
//            VOL=(,RETAIN,SER=(&TVOL))                             
//SYSIN    DD DSN=&&DUMPOPTS,DISP=(OLD,PASS)                         
// PEND                                                             

3) Copies (via INCLUDE) JCL member to perform the proc once for each volume:
e.g.
Code:
//XRES01 EXEC DUMPIT,DVOL=XRES01,TLBL=1
//XCAT01 EXEC DUMPIT,DVOL=XCAT01,TLBL=2
//XSMP01 EXEC DUMPIT,DVOL=XSMP01,TLBL=3
//XUSS01 EXEC DUMPIT,DVOL=XUSS01,TLBL=4

etc

This works fine whilst only the first tape is used.
However, we are now dumping full copies of over 50 volumes, and the first tape is full, thus needing the second.
When this happens, the DFdss dump is contained on the backend of the first tape (001006) and the first part of the second tape (001007) as file sequence 43.
Now, when the next invocation of the proc gets started for sequence number 44, the system requests dismount of the second tape (001007) and re-requests the first in the series again (001006) as follows:
Code:
 IEC502E RK 0600,001006,SL,BKUPSYS1,DUMPSYST,BACKUP.VXSMP02.FULL
*IEC501A M 0600,001007,SL,COMP,BKUPSYS1,DUMPSYST.XSMP02,BACKUP.VXSMP02.FULL
 IEC705I TAPE ON 0600,001007,SL,COMP,BKUPSYS1,DUMPSYST.XSMP02,BACKUP.VXSMP02.FULL,MEDIA3
 IEC205I TAPE,BKUPSYS1,DUMPSYST,FILESEQ=42, COMPLETE VOLUME LIST,  422
 DSN=BACKUP.VXSMP02.FULL,VOLS=001006,001007,TOTALBLOCKS=4777
 -BKUPSYS1 XSMP02   DUMPSYST    00   8291   1.43    .02   3.22   193K   0      0      0      0     0    43
 IEF234E R 0600,001007,PVT,BKUPSYS1,DUMPSYST
*IEC501A M 0600,001006,SL,,BKUPSYS1,DUMPSYST.XSIMS1,BACKUP.XSIMS1.FULL
 IEC140I TAPE    ,001006 START OF DATA SET NOT ON VOLUME


Apologies for the formatting!

The intention is to allow simple editing of the INCLUDE member to add further volumes in the future as needed.
We only have manual drives, not a tape library

Any suggestions, folks? If only to say "you have been a very silly boy"?
(FDR makes it so much simpler!)

Thanks in advance.

Code'd
Back to top
View user's profile Send private message

David Robinson

Active User


Joined: 21 Dec 2011
Posts: 175
Location: UK

PostPosted: Fri Feb 06, 2015 6:19 pm    Post subject:
Reply with quote

My intital thoughts are that on the REF statment you have SER=(&TVOL) and TVOL resolves to 001016 & 001017. So it will always mount the first tape won't it?

Why don't you refer to the previous DD name on the REF statement rather than an explicit volser?
Back to top
View user's profile Send private message
Alan Playford

New User


Joined: 22 Aug 2012
Posts: 8
Location: UK

PostPosted: Sat Feb 07, 2015 5:12 pm    Post subject: Tried REF to DDname and now get different strange error
Reply with quote

David,
Thanks for your reply.
The reason I hadn't done this before was because of the inline PROC and trying to simplify the whole process (rather than have reams of JCL which would have possibly caught out an unwary editor when changed?)

I cam to the same conclusion after discussing with a colleague. So I changed the PROC as follows:
//DUMPIT PROC DVOL=WINVOL,
// TUNIT=600,
// TVOL='SER=(001006,001007)',
// TL=0,
// PRM=''
//* PRM='TYPRUN=NORUN' <= OPTIONAL - FOR CHECKING SYNTAX
//* PRM='' <= OPTIONAL - FOR RUNNING THE JOB
//DUMPS EXEC PGM=ADRDSSU,REGION=0M,PARM='&PRM'
//SYSPRINT DD SYSOUT=*
//DASD DD UNIT=3390,VOL=SER=&DVOL,DISP=SHR
//TAPE DD DSN=BACKUP.V&DVOL..FULL,LABEL=(&TL,SL),
// DISP=(NEW,KEEP),
// UNIT=(&TUNIT,,DEFER),
// VOL=(,RETAIN,&TVOL)
//SYSIN DD DSN=&&DUMPOPTS,DISP=(OLD,PASS)
// PEND

and the invocation as follows:
//WRES01 EXEC DUMPIT,DVOL=WRES01,TL=1,TVOL='SER=(001006,001007)'
//WCAT01 EXEC DUMPIT,DVOL=WCAT01,TL=2,TVOL='REF=*.WRES01.DUMPS.TAPE'
//WSMP01 EXEC DUMPIT,DVOL=WSMP01,TL=3,TVOL='REF=*.WCAT01.DUMPS.TAPE'
etc

This generates for the first dump sequence number
IEFC653I SUBSTITUTION JCL - DSN=BACKUP.VWRES01.FULL,LABEL=(1,SL),DISP=(NEW,KEEP),UNIT=(600,,DEFER),VOL=(,
RETAIN,SER=(001006,001007))
then
IEFC653I SUBSTITUTION JCL - DSN=BACKUP.VWCAT01.FULL,LABEL=(2,SL),DISP=(NEW,KEEP),UNIT=(600,,DEFER),VOL=(,
RETAIN,REF=*.WRES01.DUMPS.TAPE)
then
IEFC653I SUBSTITUTION JCL - DSN=BACKUP.VWSMP01.FULL,LABEL=(3,SL),DISP=(NEW,KEEP),UNIT=(600,,DEFER),VOL=(,
RETAIN,REF=*.WCAT01.DUMPS.TAPE)

But the job now does this - dumps to the first tape 001006 for sequence 1,
then demounts 001006 and mounts 001007 for following sequences
*IEC501A M 0600,001006,SL,COMP,BKUPSYS1,DUMPS.WRES01,BACKUP.VWRES01.FULL
IEC705I TAPE ON 0600,001006,SL,COMP,BKUPSYS1,DUMPS.WRES01,BACKUP.VWRES01.FULL,MEDIA3
IEC205I TAPE,BKUPSYS1,DUMPS,FILESEQ=1, COMPLETE VOLUME LIST, 100
DSN=BACKUP.VWRES01.FULL,VOLS=001006,TOTALBLOCKS=12751
-BKUPSYS1 WRES01 DUMPS 00 19126 3.92 .06 5.11 545K 0 0 0 0 0 2
IEF234E R 0600,001006,PVT,BKUPSYS1,DUMPS
*IEC501A M 0600,001007,SL,COMP,BKUPSYS1,DUMPS.WCAT01,BACKUP.VWCAT01.FULL
IEC151I A13-08,IFG0195B,BKUPSYS1,DUMPS,TAPE,0600,001007, 138
BACKUP.VWCAT01.FULL
-BKUPSYS1 WCAT01 DUMPS 08 59 .00 .00 2.22 335 0 0 0 0 0 3
IEC151I A13-08,IFG0195B,BKUPSYS1,DUMPS,TAPE,0600,001007, 140
BACKUP.VWSMP01.FULL

Eventually, the A13-08 messages (invalid sequence number) stops and it goes on to produce
-BKUPSYS1 WCKD08 DUMPS 08 64 .00 .00 .03 304 0 0 0 0 0 40
IEC205I TAPE,BKUPSYS1,DUMPS,FILESEQ=40, COMPLETE VOLUME LIST, 220
DSN=BACKUP.VWWRK06.FULL,VOLS=001007,TOTALBLOCKS=4213
-BKUPSYS1 WWRK06 DUMPS 00 7019 1.12 .02 1.45 148K 0 0 0 0 0 41
IEC205I TAPE,BKUPSYS1,DUMPS,FILESEQ=41, COMPLETE VOLUME LIST, 235
DSN=BACKUP.VWWRK07.FULL,VOLS=001007,TOTALBLOCKS=6377

until job ends OK
IEC205I TAPE,BKUPSYS1,DUMPS,FILESEQ=52, COMPLETE VOLUME LIST, 288
DSN=BACKUP.VWAPP06.FULL,VOLS=001007,TOTALBLOCKS=2253
-BKUPSYS1 WAPP06 DUMPS 00 4590 .21 .01 .33 25274 0 0 0 0 0 53
IEF234E K 0600,001007,PVT,BKUPSYS1
IEF471E FOLLOWING VOLUMES NO LONGER NEEDED BY BKUPSYS1 291
001006.

So it appears that dumps 40 thru 53 are on 001007, dump 1 got taken to 001006, and the intervening dumps 2 thru 39 failed.

Argh!
Back to top
View user's profile Send private message
Pete Wilson

Active User


Joined: 31 Dec 2009
Posts: 437
Location: London

PostPosted: Thu Mar 05, 2015 3:28 am    Post subject:
Reply with quote

Add Volume Count on your tape DD, e.g. VOL=(,,,255) gives you the maximum number of volumes a tape file can extend to. The default value for volume count used to 5, might be a bit bigger now.

If you're not just mounting scratch tapes via a Tape Management Subsystem then you'd have to include more hardcoded volsers in your &TVOL symbolic. This seems a very primitive way of doing things these days though. It means you'll always potentially have to be managing this JCL manually espcially as DASD volume capacities increase. Do you not have a TMS like CA1, TLMS or suchlike?

Also curious why you just have DISP=(,KEEP) rather than (,CATLG) and have no EXPDT or RETPD values specified.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> IBM Tools All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Two Selects in a single select query Rohit Umarjikar DB2 1 Fri Nov 04, 2016 8:46 pm
No new posts Single COPY CICS TS datasets and when... Kyle Carroll CICS 2 Tue Oct 11, 2016 9:47 pm
No new posts stacking files on a tape Pedro JCL & VSAM 7 Wed Aug 17, 2016 11:11 pm
No new posts Converting multiple VB files to FB fi... Viswanath Reddy JCL & VSAM 6 Mon Aug 08, 2016 11:49 pm
No new posts Reading selected volumes of a multi-v... RickBig JCL & VSAM 6 Wed Jul 13, 2016 7:26 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us