Kbase 16944: Multi Volume Sort Files ( .srt )
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/5/2003 |
|
SUMMARY:
This solution discusses shortcomings in early documentation for multi volume sort files (.srt) in Progress Version 8.0, where to locate the topic in the System Administration Guide, and how syntax errors can cause the PROBUILD -C idxbuild utility to terminate with Error 354 when you attempt an index build ALL.
NOTE: An index rebuild can be restarted in SOME mode instead of ALL, which is helpful if your database is very large. When the index rebuild is attempted in the SOME mode, a dbname.xb file is created that the rebuild looks for in order to restart a failed index rebuild. See Progress Technical Support Solution 16535, "How to go to
Index Rebuild SOME After idxbuild Fails."
EXPLANATION:
The multi volume sort file feature was introduced in Progress Version 8.0B to solve the problem of doing idxbuild all on large databases.
The feature was not part of the documentation until the Version 8.1A System Administration Guide (print date of November 1996 or later). It is not listed in the index or the table of contents.
Multi volume sort files is an unnumbered sub topic in Section 15.9.2 "Rebuilding Indexes" and titled "Overcoming SRT Size Limitations". In the Version 8.2A System Administration Guide printed in May, 1997 or later, the topic is in Section 14.9.2
Coverage of .srt files left this important statement out of the functional specifications:
"The utility (PROBUILD -C idxbuild) does not do very
much to detect syntax errors, and an incorrect
directory specification will result in the open()
failing, and the utility terminating with error
(354).
"With v8demo.srt containing
50 /usr/sort/
0 /usr/test/
NOTE: the trailing / or \ is required for this to
work properly!
NOTE: do not use tab characters in this file, use
spaces when needed
"And a command of
proutil v8demo -C idxbuild all -t
"The v8demo.lg shows
17:29:41 Temporary sort file at /usr/sort/ used up
50K of disk space.
(5283)
17:29:41 Temporary sort file at /usr/test/ used up
70K of disk space.
(5283)
17:29:41 Temporary sort file at
/tmp_mnt/users/ts/heath/test used up
0K of disk space. (5283)
"17:29:41 A total of 120K of temporary sort disk
space was used.
(5284)
17:29:41 proutil -C idxbuild session end. (334)
"And /usr/sort and /usr/test show
-rw-rw-r-- 1 root 51200 Jun 11 17:29 saaa06329
-rw-rw-r-- 1 root 71680 Jun 11 17:29 saba06329
This provides some clue as to the naming of the multi volume sort files. The name bears no resemblance to the database name, and the assumption is the digits are the PID of the PROUTIL process.
As for the syntax of the .srt file (see above), if there is no unlimited entry, that is, of size 0, and the fixed extents are large enough to do the sorting, then no error messages results and it works fine.
If there is no variable extent and the fixed extents are not large enough, a temporary sort file is created in the current working directory. This one will be deleted (even if -t is used) even though the others specified in the .srt are not deleted.
Error (354) was mentioned above. A test with v8demo.srt that contained a non-existant directory, /usr/tttt/
produced the following message:
Unable to open or create /usr/tttt/saba06542, error 2.
(354)
If idxbuild all aborts because it has hit the 2GB limit for the sort file, because it has filled the file system, or because you abort it knowing it is going to hit the 2GB limit, you can recover by creating a valid DB.srt file and then re-run the idxbuild.
In this case, you see the following:
Previous index rebuild was interrupted. This is a new
try. (2748)
Can't find selected index list file .xb; assuming ALL.
(2786)
Is this correct? (y
)
Choosing "yes" produces:
Index Rebuild Utility
=====================
Temporary sort file at: /usr/sort/ will use up to 50K of disk space.
(5289)
Temporary sort file at: /usr/test/ will use up to 70K of disk space.
(5289)
Temporary sort file at: /tmp_mnt/users/ts/heath/test will use the
available disk space. (5288)
The index build completes successfully.
16944