View previous topic :: View next topic
|
Author |
Message |
Absinthia
New User
Joined: 10 Jan 2008 Posts: 36 Location: CHINA
|
|
|
|
Hello,everyone,I encountered a very tricky B37 error.
when I do an unload utility,the output jcl is as follows.
Code: |
//SYSREC00 DD DSN=BG50.DS.UNLOAD.DOUTHST.D&TM&TD,
// DISP=(,CATLG),
// SPACE=(CYL,(10,10),RLSE) |
and the dataset is about 88 cylinders.
From the jcl ,we can see the system can allocate 160 cylinders.However,B37 abend occured.
Abend information:
Code: |
ADDVOL FOR DD=SYSREC00 DSN=BG50.DS.UNLOAD.DOUTHST.D0331
VOL=BDSYB0 POOL=*NONE* EXT=16
POOL DEFINITION DOES NOT ALLOW VOLUME ADDITION
IEC030I B37-04,IFG0554A,BG50D10,DB2UNLD,SYSREC00,745B,BDSYB0,BG50.DS.UN
IEA995I SYMPTOM DUMP OUTPUT
SYSTEM COMPLETION CODE=B37 REASON CODE=00000004 |
Besides, BDSYB0's information is below.
Volume . : BDSYB0
Code: |
Command ===>
Unit . . : 3390
Volume Data VTOC Data Free Space Tracks Cyls
Tracks . : 50,085 Tracks . : 90 Size . . : 16,993 1,084
%Used . : 66 %Used . . : 17 Largest . : 239 15
Trks/Cyls: 15 Free DSCBS: 3,744 Free
Extents . : 321
|
When I changed the jcl from
Code: |
SPACE=(CYL,(10,10),RLSE) |
to
Code: |
SPACE=(CYL,(80,10),RLSE) |
,then it return 0.
Could you please help with it? |
|
Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
If it works with an rc=0, how would you want to fix it?
You might talk with your storage admin people and find out more about usage on BDSYB0.
How many times did the 10,10 allocation fail? How many times did the 80,10 work? Was this run more than jut the 2 times you mention?
How much time was there between the abend and successful run from your quote?
If there was only one failure, it may simply be that when the b37 occurred, there was not enough space on the volume. . . Or that due to severe fragmentation, the process ran out of extents. |
|
Back to top |
|
 |
Absinthia
New User
Joined: 10 Jan 2008 Posts: 36 Location: CHINA
|
|
|
|
Hello,
I just want to know the reason why B37 occured,as from the jcl,there seems to be no problem.I guess when no volume is designated,the system
will just allocate a volume that only meets the primary allocation(or maybe the SMS volume's largest extent space is a little more than the primary allocation).However,there are not enough extent space that can add to 88 when allocated for 16 times.
However,when the primary allocation 80,the system will choose a volume that the largest extent space is 80 cylinders.
Am I right? I just guess so. |
|
Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
Yes, there is no problem with the jcl. The abend was caused there was insufficient space as allocated.
To better understand how a b37 can occur, i'd suggest you use the "IBM Manuals" link at the top of the page, scroll down to the last entry in the Messages & Codes secton, click on Vol IV of the MVS System Messages, and search for IEC030I (which is the message id from your posted output). |
|
Back to top |
|
 |
CICS Guy
Senior Member

Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
Not to undercut Dick, and having very litle SMS stuff in my head, it might just be how the allocaton prioritized the space on the volume that got allocated....  |
|
Back to top |
|
 |
expat
Global Moderator

Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
And don't forget, that every call for a DASD space allocation, primary or secondary allocation, can be satisfied by up to 5 physical extents. |
|
Back to top |
|
 |
enrico-sorichetti
Superior Member

Joined: 14 Mar 2007 Posts: 10896 Location: italy
|
|
|
|
I might be wrong, but if I remember correctly a sequential dataset can have
a maximum of 16 extents on each volume ...
160 = 10primary + 10seconadry * 15 and after that
since there are not other volumes specified for allocation ... the abend
allocating (80,10) will give on the primary volume 230 cyls of space
allocating with a large primary and a small secondary is one of the most useless approach I have seen in storage management
.... ( 1000,10 ) I have seen it too many times ! |
|
Back to top |
|
 |
UmeySan
Active Member

Joined: 22 Aug 2006 Posts: 771 Location: Germany
|
|
|
|
Hi Absinthia !
You're on the right way !!!
During your first run with SPACE=(CYL,(10,10),RLSE) a disk was chosen, that could satisfy the primary quantity. Then data wants to expand. Then no more cyls where allocatable on that one disk, so system wants to alloc a second disk. But that was forbidden by SMS definitions.
IEC030I B37-04,IFG0554A
POOL DEFINITION DOES NOT ALLOW VOLUME ADDITION
With the second try using SPACE=(CYL,(80,10),RLSE), system automaticaly allocated an other disk, where more prim-space was available. That disk had enough space to fullfill the requests.
When i new the approximate demand of space, a dataset needs, i mostly
use this for primary alloc. I'm not a fan of multi-volume-allocation. If the Space-Managers in your shop do their job right, there would be enough space on the dasd. If a third party software like STOP-X37 is installed, the allocation is re-allocated during a fail by the system automatically. You are also using RLSE. So what. Now a days, space doesn't cost as much as bygone days.
But also keep in mind, that the prim-space is always also needed on the second volume, if only one volume could not fullfill the whole request. Then system looks for an other disk with the same free prim-space.
Regards, UmeySan |
|
Back to top |
|
 |
|
|