home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / os / vms / 18027 < prev    next >
Encoding:
Internet Message Format  |  1992-11-17  |  3.8 KB

  1. Path: sparky!uunet!ukma!wupost!usc!news!shrike.irvine.com!adam
  2. From: adam@irvine.com (Adam Beneschan)
  3. Newsgroups: comp.os.vms
  4. Subject: Re: Fixing SYSTEM-W-HEADERFULL error
  5. Message-ID: <Bxtnn5.E15@irvine.com>
  6. Date: 16 Nov 92 18:35:29 GMT
  7. Sender: usenet@irvine.com (News Administration)
  8. Organization: Irvine Compiler Corp., Irvine, California, USA
  9. Lines: 86
  10.  
  11.  
  12. In <BxoMzw.Jx9@irvine.com> I wrote:
  13.  
  14. > Our situation:  We have a Vaxstation 4000 model 60, VMS version V5.5,
  15. > 1 gigabyte SCSI drive.  There are 49112 files on our system, and our
  16. > INDEXF.SYS file is 49190 blocks.  (Each header in INDEXF.SYS is 1
  17. > block, so it's not surprising that these figures are close.)  If we
  18. > say SHOW DEVICE/FULL, it says the maximum number of files is about
  19. > 257000.  
  20. > Our problem is that we can't create any new files on the system.  If
  21. > we try to use the CREATE command to create a new file, we get this
  22. > error message:
  23. > %DCL-E-OPENOUT, error opening DKA200:[VM.INTEL.74.JUNK]X313.DAT; as output
  24. > -RMS-E-CRE, ACP file create failed
  25. > -SYSTEM-W-HEADERFULL, file header is full
  26. > . . . .
  27. > We think the problem is that the system is trying to enlarge the
  28. > INDEXF.SYS file and can't.
  29.  
  30. Thanks to Carl, Neil, Hans, Bob, Steve, and Aaron who took the trouble
  31. to e-mail responses to me.  Thanks also to anyone else who sent me a
  32. response after I started writing this post.
  33.  
  34. To summarize what I've received:
  35.  
  36. Basically, INDEXF.SYS is allowed only 53 extents (as I understand it,
  37. each extent is one contiguous block of storage).  Unlike other files,
  38. INDEXF.SYS and other *.SYS files cannot be given an extension header
  39. to hold more extents.  Doing BACKUP/IMAGE to back up the disk, and
  40. then BACKUP/IMAGE again to restore it, solved our problem.  Before
  41. doing this, we did
  42.     $ DUMP/HEADER/BLOCK=COUNT=0 [000000]INDEXF.SYS
  43. and counted the Retrieval Pointers in the "Map area" part of the dump
  44. to verify that there were 53 pointers.  After the backup and restore,
  45. we did this again and found only 3 or 4 pointers.
  46.  
  47. Other suggestions I've received:
  48.  
  49. -- Get a disk defragmenter.
  50.  
  51. -- INIT the disk with a large value for /HEADERS, causing INDEXF.SYS
  52.    to be pre-allocated with whatever number of headers we ask for.
  53.  
  54. -- Initialize another disk with a larger value for /MAXIMUM_FILES,
  55.    then backup the entire disk onto that one.
  56.  
  57. Carl gave me these instructions:
  58.  
  59. > Immediately after you finish the BACKUP/RESTORE:
  60. >     1)    Find out what the default extend quantity is for the disk by
  61. >     using the SHOW DEVICE/FULL command;
  62. >     2)    Set the default extend quantity to some enormous number 
  63. >       (can't be more
  64. >     than 65535; you don't want it to be any larger than approximately the
  65. >     difference between the maximum files allowed for the volume and the
  66. >     size of INDEXF.SYS) using the SET VOLUME/EXTENSION command;
  67. >     3)    Create lots of empty files, until you've forced extension of 
  68. >       INDEXF.SYS,
  69. >     then delete the empty files.  The following procedure should do it:
  70. >     $    SIZ = F$FILE("[000000]INDEXF.SYS", "ALQ")
  71. >     $    N = 0
  72. >     $ LOOP:    COPY NL: 'F$FAO("!8ZL", N)'.
  73. >     $    IF F$FILE("[000000]INDEXF.SYS", "ALQ") .GT. SIZ THEN GOTO DELE
  74. >     $    N = N + 1
  75. >     $    GOTO LOOP
  76. >     $ DELE:    DELETE 'N'.;
  77. >     $    IF N .EQ. 0 THEN EXIT
  78. >     $    N = N - 1
  79. >     $    GOTO DELE
  80. >     4)    Set the default extend quantity back to what you found in 
  81. >       step 1.
  82. > The procedure in step 3 may take a fair amount of time to complete.  You
  83. > probably want to execute the procedure from an empty directory.  The delete
  84. > loop is there because if you've ended up creating a lot of files, repeated
  85. > invocation of the DELETE command to delete the files in decreasing 
  86. > alphabetical order will be faster than deleting them all with a single 
  87. > DELETE command.  Hope this helps.
  88.  
  89. Aaron also pointed out that this subject was discussed about three
  90. months ago and there's more information in the archives.
  91.  
  92.                                 -- Thanks, Adam
  93.