On multiple NetWare 4.x servers, the customer receives the message: "Insufficient directory space or memory to preserve <filename>." What do these messages mean? What can the customer do? The server has plenty of free disk space on the volume. The files that are mentioned in the error are TEMP*.* files.
The console message indicates the following: "While attempting to delete a file, the server was unable to obtain the needed directory table space or memory to retain the deleted file in a state in which it could be salvaged. The file was deleted and purged. A preceding message on the screen should indicate the cause of this error."
If the customer changed the setting for MAXIMUM PERCENT OF VOLUME USED BY DIRECTORY from 13% (the default) to a higher value, this would correct the problem.
The customer could do a PURGE /ALL on the volume and this would temporarily take care of the problem, but then it would recur because he did not have adequate space for directory entries on the volume.
The customer didn't have adequate directory entry space. One can calculate the possible number of directory entries on the volume by understanding the information listed below.
1)The information included in the directory entry table is trustees, file entries and directory entries.
2) NetWare keeps two copies of the directory entry table.
3) EXAMPLE: The customer has a 200 meg SYS volume and the Max Percent of Volume used by Directory is set at 13%.
a) Find out the number of blocks on the volume. Divide the volume size (in kb) by the block size. EXAMPLE: 200 mg * 1024 (to get this value in KB) = 204800. Divide this number by the block size (32k). 204800/32=6400 blocks on the SYS volume.
b) Find out the number of blocks that can be used for directory entries. Multiply 6400 by the Maximum Percent of Volume used by Directory. EXAMPLE: 6400 blocks *.13 = 832 blocks.
c) Find out the total number of directory entries. Multiply 832 by the block size by the number of 4K directory entry blocks that are in a 32k block. EXAMPLE: 832 blocks * 32k blocks * 8 (4k blocks can fit in a 32k block) = 212992.
d) Find out the total number of directory entries available to the volume. EXAMPLE: 212992/2=106496. NOTE: Divide by 2 because NetWare keeps two copies of the directory entry table.
4) The customer can verify some of this information in SERVMAN, Volume information and highlighting the desired volume. The customer should note Directory size (blocks) and Directory entries. The customer can also use NDIR /vol to see the maximum allocated directory entries and available directory entries - at that particular time.
In this case, the customer found that several applications were creating temporary files on the SYS volume. The customer set the Purge immediately option in FILER for the directory locations where the temporary files were created.