Page 1 of 2

Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 4:11 pm
by jaggz
Hi,

I have allocated a file with space(cyl(1,0)). While writing to the file it continues to grow until it reaches 16 extents, but the secondary Space zero is not honoured. I am just curious to know if Secondary space with the value Zero does grows ?

Data Set Name . . . . : JAGS.ASM                   
                                                                         
General Data                           Current Allocation               
 Management class . . : **None**        Allocated cylinders : 16         
 Storage class  . . . : **None**        Allocated extents . : 16         
  Volume serial . . . : LT3RT1                                           
  Device type . . . . : 3390                                             
 Data class . . . . . : **None**                                         
  Organization  . . . : PS             Current Utilization               
  Record format . . . : VB              Used cylinders  . . : 16         
  Record length . . . : 32756           Used extents  . . . : 16         
  Block size  . . . . : 32760                                           
  1st extent cylinders: 1                                               
  Secondary cylinders : 0              Dates                             
  Data set name type  :                 Creation date . . . : 2012/06/27
  SMS Compressible. . : NO              Referenced date . . : 2012/06/27
                                        Expiration date . . : ***None***


Jaggz

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 4:34 pm
by BillyBoyo
How are you using the file? What happens when it gets to 16 extents? Does your research of that lead to any clues?

Why do you have such a large LRECL and therefor BLKSIZE? It is wasteful of space on DASD, but if you need it, you need it :-)

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 4:39 pm
by enrico-sorichetti
hard to believe!

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 5:18 pm
by enrico-sorichetti
if the secondary space is 0,
after having filled the primary allocation an abend SD37 will occur

(on a badly fragmented volume, the primary allocation could have been satisfied by multiple extents )

better to start over, being sure of what is entered on the keyboard :mrgreen:

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 5:40 pm
by BillyBoyo
Primary allocation is one cylinder, can't be split due to fragmentation...

I'd suspect that the program is doing multiple open/close, with the primary extent being available each time, or perhaps DISP=OLD with the SPACE, but I haven't tried it (or done it).

Otherwise, on the information(!) so far provided, I can't think of why this would happen.

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 6:05 pm
by enrico-sorichetti
Primary allocation is one cylinder, can't be split due to fragmentation...

that' s what the TS told us, as I said before - hard to believe

Nobody by looking at the VTOC after the allocation is completed or after dataset usage will ever know what was requested ! :mrgreen:

TESTED by
filling up an unused volume leaving just two NON CONTIGUOUS cylinders
allocating a dataset requesting a PRIMARY allocation of TWO cylinders

and here is what 3.2 tells

                              Data Set Information
 Command ===>

 Data Set Name . . . . : ENRICO.FRAGMNTD.DATASET

 General Data                           Current Allocation
  Management class . . : **None**        Allocated cylinders : 2
  Storage class  . . . : **None**        Allocated extents . : 2
   Volume serial . . . : ZAPRD4
   Device type . . . . : 3390
  Data class . . . . . : **None**       Current Utilization
   Organization  . . . : PS              Used cylinders  . . : 0
   Record format . . . : FB              Used extents  . . . : 0
   Record length . . . : 80
   Block size  . . . . : 27920
   1st extent cylinders: 1
   Secondary cylinders : 2
   Data set name type  :                 SMS Compressible  :   NO

   Creation date . . . : 2012/12/27      Referenced date . . : 2012/12/27
   Expiration date . . : ***None***

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 10:44 pm
by steve-myers
Just because secondary space is 0 does not mean it will be honored. I ran this JCL -
//A       EXEC PGM=IEFBR14
//A        DD  DISP=(MOD,DELETE),UNIT=SYSALLDA,SPACE=(TRK,0),
//             DSN=XXXXXX.TESTSEC.NOSEC
//B       EXEC PGM=IEFBR14
//A        DD  DISP=(,CATLG),UNIT=SYSDA,SPACE=(CYL,(1,0,500)),
//             DCB=(RECFM=FB,LRECL=80),DSN=*.A.A
//C       EXEC PGM=IEBUPDTE
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DISP=SHR,DSN=SYS1.MACLIB
//SYSUT2   DD  DISP=OLD,DSN=*.A.A,SPACE=(CYL,(1,1))
//SYSIN    DD  *
./ REPRO NAME=ABEND
./ REPRO NAME=ACB
./ REPRO NAME=ACBVS
./ REPRO NAME=ACYAPHDH
./ REPRO NAME=ADREID0
./ REPRO NAME=ADRMCLVL
./ REPRO NAME=ADSR
./ REPRO NAME=ADYDSTAT
./ REPRO NAME=ADYENF
./ REPRO NAME=AHLFFAP
./ REPRO NAME=AHLWKAL
./ REPRO NAME=AHLZGTO
./ REPRO NAME=AHLZGTS
./ REPRO NAME=ALESERV
./ REPRO NAME=AMDSADMP
./ REPRO NAME=ANFUEXTP
./ REPRO NAME=ANTPQMAP
./ REPRO NAME=ANTPSL10
./ REPRO NAME=ANTPSL11
./ REPRO NAME=ANTPSL20
./ REPRO NAME=ANTPSL30
./ REPRO NAME=ANTQFRVL
./ REPRO NAME=ANTRQST
./ REPRO NAME=ANTRQSTL
./ REPRO NAME=ANTRQTA
./ REPRO NAME=ANTRQTB
./ REPRO NAME=ANTRQTC
./ REPRO NAME=ANTRQTD
...

I got this result -
Data Set Name . . . . : XXXXXX.TESTSEC.NOSEC

General Data                          Current Allocation
 Management class . . : **None**       Allocated cylinders : 15
 Storage class  . . . : USER           Allocated extents . : 15
  Volume serial . . . : FUSR27         Maximum dir. blocks : 500
  Device type . . . . : 3390
 Data class . . . . . : **None**
  Organization  . . . : PO            Current Utilization
  Record format . . . : FB             Used cylinders  . . : 15
  Record length . . . : 80             Used extents  . . . : 15
  Block size  . . . . : 27920          Used dir. blocks  . : 5
  1st extent cylinders: 1              Number of members . : 76
  Secondary cylinders : 0
  Data set name type  : PDS

  Creation date . . . : 2012/12/27     Referenced date . . : 2012/12/27
  Expiration date . . : ***None***

The secondary space was not honored because the secondary space in SPACE=(CYL,(1,1)) in the IEBUPDTE step overrode the secondary space in the initial allocation. There are products in the market place - something called STOPX37 may be the best known - that will do this without JCL changes.

Re: Secondary Space at ZERO

PostPosted: Thu Dec 27, 2012 11:15 pm
by dick scherrer
Hello,

Suggest Jaggz speak with the storage managent people and learn which rules apply to this particular dataset.

Re: Secondary Space at ZERO

PostPosted: Fri Dec 28, 2012 1:39 am
by enrico-sorichetti
:oops:

But IMO even if it works people using that trick should have their fingers cut ;)

guess about using it on SYS1.LINKLIB :mrgreen:

Re: Secondary Space at ZERO

PostPosted: Fri Dec 28, 2012 5:04 am
by steve-myers
enrico-sorichetti wrote::oops:

But IMO even if it works people using that trick should have their fingers cut ;)

guess about using it on SYS1.LINKLIB :mrgreen:
Cut? Amputated might be more appropriate!

Seriously, my sole goal was to demonstrate that a secondary allocation specification is not cast in stone and it is possible to defeat it. Notice that even though it was defeated for the DD statement, the original specification is still there.

It appears to me that the original data set appears to be sequential, so the only practical way to extend it is to use DISP=MOD.