Page 1 of 2

Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 7:09 pm
by vanzhere
I was creating a new member in PDS. I got a message-No space indirectory. Why did i get such message?

Re: Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 7:30 pm
by GuyC
simply stated : too many members.
A pds has an area called 'Directory blocks' where a list of all members is maintained.
The number of directory blocks is something you say during allocation of the pds.

Re: Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 7:50 pm
by Robert Sample
If you run out of directory blocks, you can contact your site support group to determine if your site has the freeware PDS installed. This is available through the CBT site (http://www.cbttape.org) and allows directory blocks to be added to a PDS.

If your site does not have PDS installed, your only choice is to create a new partitioned data set (with more directory blocks), use IEBCOPY to copy all members from the old partitioned data set to the new partitioned data set, and start using the new one. If you go this route, you could also create the new data set as a PDSE, which does not run out of directory blocks.

Re: Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 8:46 pm
by steve-myers
Personal opinion: the process to add directory blocks to a PDS is very nearly as risky as doing a "compress" of a PDS. This process has to physically move any members that exist on the same physical track as the last directory block and its trailing EOF to the end of the PDS, then reformat the end of the directory. It is much safer to create a new PDS with more directory blocks, use IEBCOPY (or ISPF 3.3) to copy the old dataset to the new data set, and then rename the data sets, as Mr. Sample proposes.

Re: Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 8:54 pm
by vanzhere
but i have only 4 members in the PDS i use.... the PDS i was using got deleted unfortunately.... as you said to use IEBCOPY utility and start using the new one ...i did the same way..
but stil i get the same message.... can u suggest a better solution???

Re: Why do i get the message-No space in directory?

PostPosted: Fri Sep 10, 2010 9:02 pm
by Robert Sample
Post any messages using the Code tag. Also post the PDS definition -- particular space and directory blocks.

Re: Why do i get the message-No space in directory?

PostPosted: Sat Sep 11, 2010 10:45 am
by steve-myers
Well, I hope the original poster did allocate more than one block block in his new PDS.

Long ago I had figured out I could allocate just 5 members with ISPF statistics in a one directory block PDS, with the space used in the directory block distributed like this:
                                     Total
                          Size Number Size
Directory block used bytes  2     1     2
"EOF" member               12     1    12
Member Entries             42     5   210
                                      224
You cannot store a 6th member. I then tried load modules; I was able to store 6 members, with the space used in the directory block distributed like this:
                                     Total
                          Size Number Size
Directory block used bytes  2     1     2
"EOF" member               12     1    12
Member Entries             36     6   216
                                      230
These are the minimum length directory entries for load modules. There are several ways to create longer directory entries, but most of those methods are beyond the presumptive skill level of most of the readers of this board. One method is not beyond this skill level: alias entries are longer than minimum length directory entries:
                                     Total
                          Size Number Size
Directory block used bytes  2     1     2
"EOF" member               12     1    12
Member Entry               36     1    36
Alias Entries              46     4   184
                                      234
I was slightly annoyed that the binder stored nothing when I tried to create 5 alias entries, but this may make some sense. A dump of this directory block is:
0000     0  00EAD4F0 F0F0F0F0  F0F10000 032C0000  *..M0000001......*
0010    16  09000000 000002E2  00304830 48000000  *.......S........*
0020    32  88000101 0000D4F0  F0F0F0F0 F0F20000  *h.....M0000002..*
0030    48  03B10000 09000000  000002E2 00304830  *...........S....*
0040    64  48000000 88000100  0000D4F0 F0F0F0F0  *....h.....M00000*
0050    80  F0F10100 D4F0F0F0  F0F0F0F3 000003B1  *01..M0000003....*
0060    96  00000900 00000000  02E20030 48304800  *.........S......*
0070   112  00008800 01000000  D4F0F0F0 F0F0F0F1  *..h.....M0000001*
0080   128  0100D4F0 F0F0F0F0  F0F40000 03B10000  *..M0000004......*
0090   144  09000000 000002E2  00304830 48000000  *.......S........*
00A0   160  88000100 0000D4F0  F0F0F0F0 F0F10100  *h.....M0000001..*
00B0   176  D4F0F0F0 F0F0F0F5  000003B1 00000900  *M0000005........*
00C0   192  00000000 02E20030  48304800 00008800  *.....S........h.*
00D0   208  01000000 D4F0F0F0  F0F0F0F1 0100FFFF  *....M0000001....*
00E0   224  FFFFFFFF FFFF0000  00000000 00000000  *................*
00F0   240  00000000 00000000  00000000 00000000  *................*
So our original poster is going to have to give us more information about what he is doing if we can have any hope of helping him further.

Re: Why do i get the message-No space in directory?

PostPosted: Fri Oct 22, 2010 12:08 am
by JENSENV
Why is anyone using PDS or PO datasets anymore? IBM created PDSE, or PO-E or DSNTYPE=LIBRARY in 1989.

They work exactly like a PDS yet will allow up to 123 extents, are self re-organizing/compressing, and have an imbeded directory so you never get directory space issues again. They also are indexed so that member retrieval is faster than a PDS.

Allocate a new file with the parameter DSNTYPE=LIBRARY and copy all members from the old library to the new one using IEBCOPY.

Re: Why do i get the message-No space in directory?

PostPosted: Fri Oct 22, 2010 12:13 am
by dick scherrer
Hello and welcome to the forum,

PDSEs will not work in all cases.

Suggest you do some research and post back what you learn about then a pdse is your friend and when a pdse should not be used. . . .

Re: Why do i get the message-No space in directory?

PostPosted: Fri Oct 22, 2010 7:48 am
by steve-myers
There are a number of reasons people do not use PDSE, despite some minor advantages.
  • The JCL to allocate a PDSE is different than the JCL to allocate a PDS. This is also true for the line mode TSO ALLOCATE command and resources like ISPF option 3,2. Most people are too lazy to change what they do.
  • PDSE data sets generally use more space than PDS data sets. Basically, the members are mapped into 4K blocks, regardless of the member size, and this adds to the space.
  • PDSE data sets require substantially more CPU time than traditional PDS data sets.
  • Programs that work with PDS data sets directly are rarely written for maximum performance. Programs like IEBCOPY and alternative vendor provided programs are exceptions to this rule, but there is no "fast" method to perform I/O to PDSE data sets. Obviously this affects program like IEBCOPY and the vendor provided programs
  • Modern DASD rather negates the potential performance advantages of the PDSE indexed directory. A keyed search in a large directory on rotating DASD is a real dog, but when the directory is in storage as is the case with modern DASD this search amounts to skipping through storage. I don't think I've ever seen studies demonstrating where an indexed PDSE directory produces better results on rotating DASD than traditional PDS directories. In any event, I suspect there are very few PDS data sets with a large enough directory for an indexed search to produce significantly better results in PDSE.
  • PDSE uses the same general system paths and control formats as the Hierarchal File System used by Unix System Services in z/OS. HFS has developed a reputation of being a dog and is being phased out.