IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

ADRDSSU- Copy generation to generation


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 12:56 pm
Reply with quote

Hi,

I want to copy data from generation to generation.
Source GDG is AAAAAAAA.BBBB.MONTHLY.VENDOR
Dest GDG is AAAAAAAA.BBBB.MONTHLY.VENDOR.BK

i tried to copy generation to generation thru PGM=ADRDSSU
but it failed in prod as source dest is having 4 qualifier and dest gdg having 5 qualifier.

here is the jcl
Code:

//COPY111 EXEC PGM=ADRDSSU                         
//SYSPRINT DD SYSOUT=*                             
//SYSOUT   DD SYSOUT=*                             
//SYSIN DD *                                       
  COPY                                       -     
   DATASET(                                  -     
   INCLUDE(                                  -     
   AAAAAAAA.BBBB.MONTHLY.VENDOR.**         -     
   )                                         -     
   )                                         -     
   RENUNC(AAAAAAAA.BBBB.MONTHLY.VENDOR.**, -     
   AAAAAAAA.BBBB.MONTHLY.VENDOR.BK.**)     -     
   CATALOG TGTGDS(ACTIVE)                           
/*                                                 


the error i am getting is
Code:

 ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '       
 ADR109I (R/I)-RI01 (01), 2010.209 01:24:56 INITIAL SCAN OF USER CONTROL STATEME
 ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK           
0ADR006I (001)-STEND(01), 2010.209 01:24:56 EXECUTION BEGINS                   
0ADR709E (001)-VDSS (01), AN ERROR OCCURRED IN THE STORAGE MANAGEMENT SUBSYSTEM
                          AAAAAAAA.BBBB.MONTHLY.VENDOR.G0001V00 WITH NEWNAME G
                          FOLLOW.                                               
  IGD17101I DATA SET AAAAAAAA.BBBB.MONTHLY.VENDOR.BK                         
  NOT DEFINED BECAUSE DUPLICATE NAME EXISTS IN CATALOG                         
  RETURN CODE IS 8 REASON CODE IS 38 IGG0CLEH                                   
0ADR809I (001)-VDSS (01), ADDITIONAL DIAGNOSTIC DATA FOR PRECEDING MESSAGE:     
                          SC=VFNORM MC=VF743I DC=VFPS                           
                          REQPRI=0000000962KB  REQSEC=0000000002TRK REQVOLS=01 

Back to top
View user's profile Send private message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 1:19 pm
Reply with quote

Seems like i wrongly copied the error mask.

Please Ignore the previous error message,

Correct error msg is,
Code:

 ADR101I (R/I)-RI01 (01), TASKID 001 HAS BEEN ASSIGNED TO COMMAND 'COPY '       
 ADR109I (R/I)-RI01 (01), 2010.209 01:24:56 INITIAL SCAN OF USER CONTROL STATEMENTS COMPLETED
 ADR016I (001)-PRIME(01), RACF LOGGING OPTION IN EFFECT FOR THIS TASK           
0ADR006I (001)-STEND(01), 2010.209 01:24:56 EXECUTION BEGINS                   
0ADR709E (001)-VDSS (01), AN ERROR OCCURRED IN THE STORAGE MANAGEMENT SUBSYSTEM WHILE ALLOCATING DATA SET
                          AAAAAAAA.BBBB.MONTHLY.VENDOR.G0001V00 WITH NEWNAME AAAAAAAA.BBBB.MONTHLY.VENDOR.BK. SMS MESSAGES
                          FOLLOW.                                               
  IGD17101I DATA SET AAAAAAAA.BBBB.MONTHLY.VENDOR.BK                         
  NOT DEFINED BECAUSE DUPLICATE NAME EXISTS IN CATALOG                         
  RETURN CODE IS 8 REASON CODE IS 38 IGG0CLEH                                   
0ADR809I (001)-VDSS (01), ADDITIONAL DIAGNOSTIC DATA FOR PRECEDING MESSAGE:     
                          SC=VFNORM MC=VF743I DC=VFPS                           
                          REQPRI=0000000962KB  REQSEC=0000000002TRK REQVOLS=01 


But only GDG is there in name AAAAAAAA.BBBB.MONTHLY.VENDOR.BK . No generation is there.

Please suggest.

Thanks.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jul 28, 2010 1:33 pm
Reply with quote

Unfortunately the renaming capabilities of DFdss are not brilliant, in fact, they are fairly basic at best.

You can only change the HLQ using wildcards with Dfdss, so you will need to manually specify the output dataset names.
Back to top
View user's profile Send private message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 1:39 pm
Reply with quote

Thank you Expat.

But i have to copy around 200 generations. Is there any other way to achieve this? The jcl will run in production.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jul 28, 2010 1:52 pm
Reply with quote

Only with a workaround, like CSI to list the generations and then build the rename cards.
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Wed Jul 28, 2010 1:57 pm
Reply with quote

What happens if you add REPLACEU - after RENUNC ?
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jul 28, 2010 2:02 pm
Reply with quote

Unfortunately the same result. I did try that before posting icon_cry.gif
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Wed Jul 28, 2010 2:06 pm
Reply with quote

Expat, im so sorry about that icon_smile.gif

Then i guess we are exhausted with probable solutions.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jul 28, 2010 2:08 pm
Reply with quote

Aha .................. going through my archive JCL library a possible solution raises its little head as I did recall some changes to the rename functionality from the olde world releases to the newer releases. In fact, probably a long long time ago icon_eek.gif
With the rename in DFdss you can not add or drop another LQ, but, you can rename one of the LQs,

Try something like this
Code:
 COPY DATASET(INCLUDE(XXX.TEST.GDG01.*))                       -
      RENAMEUNCONDITIONAL((XXX.TEST.GDG01.*,XXX.TEST.GDG02.*)) -
      REPLACEUNCONDITIONAL CATALOG TGTGDS(ACTIVE)              -
      ALLDATA(*) ALLEXCP                                       
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Wed Jul 28, 2010 2:27 pm
Reply with quote

I found something like this (expat do we have the same libraries?) :

Code:

COPY DATASET(INCLUDE(XXX.PROD.GDG.**)) -
RENUNC(XXX.PROD.GDG.**,XXX.DUMP.GDG.**) -
CATALOG TGTGDS(ACTIVE)
Back to top
View user's profile Send private message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 3:22 pm
Reply with quote

Thanks a lot. I already tested above codes.Its working.But in both the cases we use same no of qualifiers in source and dest gdgs.

Well, can we do like this?

1. Copy generation to generation using ADRDSSU. ( both the gdgs have 4 qualifiers).
2. Rename the dest generations (4 qualifier gdg) to other gdg which is having 5 qualifiers.
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Wed Jul 28, 2010 3:51 pm
Reply with quote

Expat, stated the following :

Quote:

With the rename in DFdss you can not add or drop another LQ, but, you can rename one of the LQs


So I guess you have to stick to 4 qualifiers, with one of them renamed.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8796
Location: Welsh Wales

PostPosted: Wed Jul 28, 2010 3:58 pm
Reply with quote

Why the desire for a fifth qualifier, surely a backup is a backup in anyones language.

If it is merely a backup question then why not let HSM (or whatever) deal with it automatically.
Back to top
View user's profile Send private message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 4:07 pm
Reply with quote

Yes, you both are correct and also am adding this "Client is always a Client." :-)

The thing is Client has changed the Proc for 5 qualifer gdg and we have to go for this. No way out for me other than copying one by one.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19243
Location: Inside the Matrix

PostPosted: Wed Jul 28, 2010 7:35 pm
Reply with quote

Hello,

If the client insists, then the client can pay for the time/effort required icon_smile.gif
Back to top
View user's profile Send private message
nevilh

Active User


Joined: 01 Sep 2006
Posts: 262

PostPosted: Wed Jul 28, 2010 8:48 pm
Reply with quote

We had a similar requirement and in the end we ran the copy with the PARM='TYPRUN=NORUN' and saved the output to a disk file . We then used the saved file as input to a rexx that generated a rename job. If this is a one off task it is easy to do it by hand, if it is a regular task it is a pain .
Back to top
View user's profile Send private message
devmisra

New User


Joined: 29 Jan 2009
Posts: 39
Location: India

PostPosted: Wed Jul 28, 2010 9:46 pm
Reply with quote

and its very unfortunate here... :-) Only effot and no pay.. :-(
Back to top
View user's profile Send private message
Pete Wilson

Active Member


Joined: 31 Dec 2009
Posts: 592
Location: London

PostPosted: Mon Aug 16, 2010 9:50 pm
Reply with quote

Note to IBM, how about and ADDQUAL parameter, we have been waiting patiently for a LONG time and other vendors have provided this for decades...grrrr

FDRDSF it can add qualifiers if you have it:

RESTORE example:
A dataset named "LEDGER.TRANSACT" is to be restored as
"LEDGER.JULY.TRANSACT(+1)”.

//RESTORE EXEC PGM=FDRDSF,REGION=32M
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD UNIT=TAPE,DSN=BACKUP,DISP=OLD,
// VOL=SER=12155
//SYSIN DD *
RESTORE TYPE=DSF,RECAT
SELECT DSN=LEDGER.TRANSACT,NEWINDEX=.+JULY(+1)

This an example of COPY:

COPY a set of SMS-managed datasets, creating SMS-managed copies. The original storage and
management classes of the input datasets will be passed to the SMS ACS routines, which may
accept or override them. Datasets with a first-level index beginning with "APPL" will be copied. The
NEWI= parameter is used to insert "TEST" as a new second-level index in all the output dataset
names.
//COPYSMS EXEC PGM=FDRCOPY,REGION=32M
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
COPY TYPE=DSF
SELECT CATDSN=APPL*.**,NEWI=.+TEST

New Index rules:

NEWINDEX=
NEWI=
Copy or move the selected datasets using a new name formed by adding or replacing
one or more index levels in the original name; replacement index levels do not have to
be the same length as the original indexes they replace. In the simplest case, each index
level specified in NEWI is used in place of the corresponding index in the original name.
Any remaining index levels at the end of the name are copied unchanged. This can
easily be used to change the first indexes of the name.
For example, if the input dataset is A.B.C.D,
NEWI=D results in D.B.C.D (first index replaced)
NEWI=DD.E results in DD.E.C.D (first 2 indexes replaced)
If a period is specified without any preceding characters, one original index level is
copied from the input dataset name to the output. This allows you to easily modify
indexes in the middle of the name.
For example, if the input dataset is A.B.C.D,
NEWI=..E results in A.B.E.D (third index replaced)
NEWI=FF...G results in FF.B.C.G (first and fourth indexes replaced)
If + is specified before a new index level, that new index is inserted into the output
dataset name at that point. If ++ precedes the new index, it will be added to the end of
the name. If - is specified, the next input index level will be dropped from (not copied to)
the output name.
For example, if the input dataset is A.B.C.D,
NEWI=+F results in F.A.B.C.D (new first index added)
NEWI=..+F results in A.B.F.C.D (new third index added)
NEWI=++F results in A.B.C.D.F (new last index added)
NEWI=..- results in A.B.D (third index dropped)
NEWI=Q.-.+E results in Q.C.E.D (combination)
Note that, except for the ++ option, every period in the NEWI= mask corresponds to a
period (one index level) in the original (input) dataset name. The resulting new name will
be checked to insure it meets IBM standards.
If the NEWI= value ends in a GDG relative generation number, e.g.,
NEWI=..NEWMAST(–2), that relative number will be added to the end of the newname,
and a LOCATE done to get the proper absolute generation number.
NEWI= is a convenient way to rename every input dataset, while using some index
levels from the original name and replacing other indexes or adding new indexes
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Copy only TEXT or String from a record SYNCSORT 4
No new posts GDG generation name to GDG Base name ... DFSORT/ICETOOL 3
No new posts Use Copy Utility DB2 7
No new posts VB to VB copy - Full length reached SYNCSORT 8
No new posts DFHPI1008 JSON generation failed COBOL Programming 0
Search our Forums:

Back to Top