View previous topic :: View next topic
|
Author |
Message |
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
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 |
|
|
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
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 |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
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 |
|
|
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
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 |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
Only with a workaround, like CSI to list the generations and then build the rename cards. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
What happens if you add REPLACEU - after RENUNC ? |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
Unfortunately the same result. I did try that before posting |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Expat, im so sorry about that
Then i guess we are exhausted with probable solutions. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
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
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 |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
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 |
|
|
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
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 |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
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 |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
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 |
|
|
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
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 |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
If the client insists, then the client can pay for the time/effort required |
|
Back to top |
|
|
nevilh
Active User
Joined: 01 Sep 2006 Posts: 262
|
|
|
|
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 |
|
|
devmisra
New User
Joined: 29 Jan 2009 Posts: 39 Location: India
|
|
|
|
and its very unfortunate here... :-) Only effot and no pay.. :-( |
|
Back to top |
|
|
Pete Wilson
Active Member
Joined: 31 Dec 2009 Posts: 592 Location: London
|
|
|
|
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 |
|
|
|