View previous topic :: View next topic
|
Author |
Message |
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
hi folks,
I have created a new GDG base (GDG Limit = 100) and a model dataset with following DCB parameters DCB=(LRECL=80,RECFM=FB,DSORG=PS)
i have added 50 generations to the base by refering Model dateset DCB parameters so far. however due to requirement change, LRECL of Generation is changed to 90 but rest of DCB parameters are same.
Now if i try to add 51st generation (LRECL 90) to the base, it will error out saying 'CONFLICTING DCB PARAMETERS ' .
what i need, is to have 50 generations to be kept with old DCB and new 51st to be with LRECL 90.
we can do it by creating a new GDG with LRECL 90 and copy all 50 generation first and then add 51st generation.
but i am curious to know whether can we achieve thru any other method.
(Note: we dont have file-aid at present)
Thanks |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
Don't know why you're even bothering using a model DSCB.
Using SMS, the model DSCB has not been required for about 20 years now.
Get rid of the model DSCB from any statements creating a new generation and see what happens. |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
I am unaware of "What is model DSCB" . .
You mean to say, creating a generation using model dataset's DCB is called as "model DSCB".
please throw some light on how to get rid of this " model DSCB".
kindly provide some documents or any urls will do.
In the mean time let me go thru manuals. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
Show the JCL that you are using to try and create the new generation. |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Code: |
//GDGPUTG1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DSN=DEP.TEST.RPT,DISP=SHR
//SYSUT2 DD DSN=DEP.DATA.GDGROUP(+1),
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(80,10),RLSE),
// DCB=(MODLDSCB,RECFM=FB,LRECL=172,BLKSIZE=0)
|
pls see i have changed the LRECL to bigger value (172) than the old generations |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
What is model DSCB - perhaps a clue may be seen below
DCB=(MODLDSCB,RECFM=FB,LRECL=172,BLKSIZE=0)
Just code the RECFM & LRECL paramters for that line and see what happens.
Code: |
// RECFM=FB,LRECL=172
|
|
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Thanks for teaching perhaps out of curious i have a doubt here, if i remove this keyword MODLDSCB and if i execute the JCL with another LRECL value (eg: LRECL=200) for new generation.
will it give an error ? |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
Why don't you try it and see |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
|
|
|
|
see the bit
does that not look like model DSCB? Remove it. You can also remove DCB= as the subparameters that you need are all keywords in their own right these days. And you can probably get away with not having BLKSIZE. And how big is DEPT.TEST.RPT? Is it really 80+ cylinders?
Edit: crossed in the post! |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Thanks Nic and expat for your suggestion.
Nic,
yes, DEPT.TEST.RPT is a very big file, having many sub reports within this file. its created using area sweep in IDMS (COBI ) module |
|
Back to top |
|
|
Dale Robertson
New User
Joined: 21 Jun 2013 Posts: 44 Location: U.S.A.
|
|
|
|
bvarun,
MODEL.DSCB is no longer used with z/OS in the DCB as SMS abrogates that. Refrain from using it in the future. It's as simple as that.
Unlike SDB where it's still a good idea to fully understand blocking factors MODEL.DSCB just gets in your way. SDB [system determined blocksize] is for Girl Scouts and UNIX programmers who have a tough time with MVS.
r
"This stereo record cannot be played on old tin boxes no matter what they are fitted with. If you are in possession of such equipment please hand it into the nearest police station."
--Mike Oldfield - Tubular Bells. |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Thanks Guys for the support..
i removed MODEL DCB keyword and i can add variable LRECL generations to a GDG base. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Just be aware that if generations are created with different/conflicting dcb parameters, the files may cause a failure when some other process "knows" the wrong dcb info . . . |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
You mean DCB parameters like DSORG |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
|
|
|
|
No - more like LRECL. If that changes from dataset to dataset then you, and your program, need to be aware of the fact and cater for it. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
As Nic mentioned, a big vulnerability is changing lrecl. Blksize can be an issue if more than one generation is to be concatenated into a run.
Why does someone believe it is acceptable to catalog new generations with unlike dcb parameters?
I've asked some contacts and none of their organizations permit this. If the file is to be "different" a different DSN should be used rather than a new generation. |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Thanks Dick for your inputs.
a Quick question here, can we see information about GDG base in ISPF . Since we dont have File-aid in our shop, i tried in '3.4' option. but couldnt see it. |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
IDCAMS LISTCAT gets you everything you need to know about a GDG base |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
thanks Expat.
I am so happy to be part of this forum .. You guys are very supportive |
|
Back to top |
|
|
Pete Wilson
Active Member
Joined: 31 Dec 2009 Posts: 590 Location: London
|
|
|
|
BV - a model DSCB is just a dataset created with 0 space and whatever LRECL,RECFM values etc. So it is just a DataSetControlBlock in the VTOC (Volume Table of Contents) on a DASD (Direct Access Storage Device) volume (or disk), but has no space allocated for the file.
It is still possible to use them but is unnecessary and not encouraged since ICF catalogs and SMS were introduced a few decades ago. All they do is provide 'model DCB allocation attributes' such as LRECL and RECFM etc for the dataset you're creating. If the dataset you're creating needs a change in LRECL then you'd have to redefine the MODEL DSCB if you're relying on that, and there could be numerous other things referring to that MODEL DSCB that DON'T want their attributes changed. So best to never use them these days.
The nearest DSCB equivalents now are the LIKE or REFDD JCL keywords which perform a 'similar' function by copying attributes of the file they're refer to to the new dataset you're creating, but they also provide SPACE and other attributes like SMS classes as well. You can also override individual values for your new dataset by specifying LRECL, SPACE or other keywords and it merges these together.
For SDB, it is usually best to use that as it will always to provide the nearest to half-track blocking factors which is more space efficient. If you don't understand blocking just don't code BLKSIZE. (There are a few exceptions to this but not many). I'd rather see users ommitting BLKSIZE or coding BLKSIZE=0 to get SDB than attempting to work out the correct BLKSIZE and messing it up. If you do a test allocation and load of LRECL=80,RECFM=FB file with a few thousand records and specify BLKSIZE=80, then try the same without specifying BLKSIZE, you will see the massive different in file size. The reason is every block has a 32 byte interblock gap which is effectively wasted space. |
|
Back to top |
|
|
bvarun.
New User
Joined: 05 Jul 2013 Posts: 34 Location: India
|
|
|
|
Thanks pete |
|
Back to top |
|
|
|