PreviousSharing Files File Handler Utilities (UNIX)Next"

Chapter 7: Maintaining Files

This chapter describes the Rebuild utility which enables you to maintain indexed files.


Note: If you are still using the file handling utilities, it is recommended that you start using Rebuild. The file handing utilities remain available in this release of Object COBOL Developer Suite, but they will be removed from future product updates. Rebuild is now the actively supported and strategic file management utility. For information on how you migrate to Rebuild see the section Migrating To Rebuild in the chapter File Handler Utilities.


7.1 Overview

In the life-cycle of an indexed file, you may need to reorganize the file, or to recover a corrupt index file. Rebuild enables you to do these things from the operating system command line. Rebuild also has a call interface that enables you to integrate Rebuild into your application. Rebuild and Callable Rebuild are explained in detail in this chapter.


Caution: You should be aware that, if your system is configured to use Fileshare, Rebuild will attempt to use the Fileshare Client configuration information. See Part 4: Fileshare for further information on Fileshare.


7.2 Rebuild

The file management utility, Rebuild, provides a number of facilities to improve the management of data files. The principal facilities offered are:


Notes:


7.2.1 Indexed File Reorganization

As indexed files are updated by adding, deleting and altering records, the index and data structures become disjointed, making processing less efficient. In addition, space left by deleted records is not always reused, making the file bigger than it needs to be. After a large number of changes have been made, it is worth reorganizing an indexed file to rebuild the data and indices in an ordered sequential fashion and reclaim any free space, thus providing optimum performance and integrity.

Example

This is the simplest use of Rebuild, to reorganize an indexed file. An input file and an output file are specified:

rebuild infile.dat,outfile.dat

Rebuild reads the data file (infile.dat) using the index file (infile.idx). Then it creates the output file, outfile.dat, without the deleted records in infile.dat. Note that Rebuild does not allow the same name to be specified for the input file and the output file.

7.2.2 Recovery of Corrupt Indexed Files

An index can become corrupt if, for example, a power loss occurs when a program has opened and changed an indexed file, but has not yet closed it. When a COBOL program subsequently attempts to open this file, the Callable File Handler detects that the file was not closed properly and returns an extended file status code for a corrupt index file. You cannot use the file at all without first recovering its integrity.

Rebuild can recover corrupt indexed files for you. If the data portion of the file is intact and only the index portion is corrupt, Rebuild can generate a new index (.idx file) from the data with no information loss. If the data portion of the file is corrupt, Rebuild can rebuild a complete new indexed file, both data and index portions, but there will be a loss of information as Rebuild discards any corrupt data records that it encounters.

Example

If infile.dat has a corrupt index (.idx) file, the following Rebuild command recreates it:

rebuild infile.dat

The .idx file is read to get the key information, and a new index file is created by reading the data (infile.dat) file sequentially.

7.2.3 File Conversion

Rebuild enables you to convert LEVEL II V2.5 COBOL, Btrieve, C-ISAM, IDXFORMAT"4" and IDXFORMAT"8" files.


Note: You can read and write Btrieve files directly from COBOL syntax using the Callable File Handler. See the chapter Handling Btrieve Files for more details.


7.3 Operation

The Rebuild utility is a non-interactive utility which accepts all of its parameters from the command line or from parameter files named on the command line. See the section Parameter Files later in this chapter for details of how to create a parameter file.

UNIX:
On UNIX systems, Rebuild options must be preceded by a hyphen (-) character rather than a slash (/) character.

The format of the command line is, for rebuilding an index:

rebuild in-file [/c] [/k] [/i] [/v] [/e] [/f] [/q]

for reorganization:

rebuild in-file,out-file [/c] [/d] [/x] [/i] [/v]

for conversion:

rebuild in-file,out-file [/s] [/o] [/r] [/t] [/k] [/c] [/i] [/v] 

for validation:

rebuild in-file /f[c][d]

where the parameters are:

in-file The name of the file, including its extension, to be rebuilt/reorganized.
out-file The name of the file, including its extension, to contain the result. The root of the filename must be different from that of in-file.
/c The type of compression to enable on a file.
/d Rebuild continues from the beginning of the next record if it finds that the data part of a record in an indexed file is corrupt.
/e Prevents an illegal duplicate key from aborting the Rebuild process.
/f Validates the integrity of an indexed file.
/i Causes Rebuild to display information.
/k Defines the key structure of the output file.
/n Causes Rebuild to display information without processing the file.
/o Defines the organization of the input file; this allows conversion of sequential and relative files to indexed files.
/q Quick rebuild. The /i and /e options are ignored.
/r Defines the record structure of the input file and output files.
/s Specifies the format of the input file and, in conjunction with the /t option allows conversion of C-ISAM, LEVEL II V2.5 COBOL and Btrieve files into the indexed file format used by this COBOL system. If you use the /s option you must use the /r option.
/t Specifies the index file format of the output file.
/v Causes Rebuild to display a running record count.
/x Indicates the key-of-reference.

Notes:


7.3.1 Rebuild Options

Various options are available with Rebuild; some of these are followed by parameters providing further information. The option letter can be separated from its parameters by an optional colon (:). Options can be placed anywhere within the command, and are free-format with spaces allowed between fields.

/c

The /c option specifies file compression. The parameters are the letter d (for data compression) followed by an integer, and the letter i (for index compression) followed by an integer. The integer for data compression must be within the range 0 to 255 where 0 denotes no compression, values of 1 through 127 are reserved, and 128 through 255 are for user-defined compression routines. The integer for index compression must be within the range 0 to 7 according to the type of compression required:

1 - compression of duplicates
2 - compression of leading characters
4 - compression of trailing spaces

You can specify any combination by adding these values together. Zero (0) specifies no index compression.

For example:

/c:d1i6 Specifies data compression routine 1, and index compression of leading characters and trailing spaces.
/c:i1 Specifies index compression of duplicates only.

Data compression applies only to an output file; index compression can apply to an output file or the rebuild of an existing file. The /c parameters operate in a similar manner to the Compiler directives DATACOMPRESS and KEYCOMPRESS.

/d

The /d option forces Rebuild to continue from the beginning of the next record if it finds that the data part of a record in an indexed file is corrupt. If the /d option is not set, Rebuild returns file status error 9/018 (EOF before EOR) when it encounters a corrupt record.

When the /d option is specified, the input file's file header is read and the output file is given the same attributes. Any recovered records are copied to the file rebuild.err. This is a variable length sequential file which can be viewed using the Data File Editor.

This option works best with compressed files which give 9/018 errors when rebuilding. Rebuild does try to recover other file types but you should check that the output file is what you want.

If you specify other Rebuild options (for example, /k) with the /d option, these other options take precedence over the details in the file header.

/e

When rebuilding a corrupt file, or a file with a new key structure (/k option used), records may be encountered with an illegal duplicate key. Without the /e option this causes Rebuild to terminate with an "Error on output file - status 22" error. However, if the /e option is used, Rebuild reports the duplicate, and continues to process the remaining records. Note that the record with the duplicate key is not written.

/f

The /f option validates an indexed file.

For validating IDXFORMAT"3", IDXFORMAT"4" and C-ISAM files, the /f option has two additional parameters: c - the level of checking performed and d - the level of messages displayed.

The c parameter enables five different types of checking to be performed on the indexed file. You can select any combination of these but the more you select, the longer the validation will take. The levels are:

+1 Checks the structure of the data file and counts the number of records present.
+2 Checks the free space list (FSL) structure.
+4 Checks that the FSL entries exist in the data file. This ensures that if a record is marked as deleted in the data file, it is present in the FSL. If the record is not present in the FSL, the file handler will not re-use the space.
+8 Checks the structure of the index file.
+16 Checks that all the key entries in the index file correctly locate the actual data records in the data file.
+32 Similar to +16, but checks that the key values present in the index match those of the records in the data file.
63 All of above (default).

To perform several levels of checking, simply add together the numbers of the required checks.

The d parameter enables you to specify the level of information displayed when you use the /f option. The levels are:

0 Display nothing.
1 Display error messages only when something is found to be wrong with the index file.
2 Display a message showing which options you have selected.
3 Display information about the file, including key definition, record lengths, data compression, and the version of the Callable File Handler which created and updated the file.
4 Display the different types of record in the file, the record types being:
1 IDXFORMAT"4" information record.
2 Deleted record.
3 System record.
4 Data record.
5 Data record which has been reduced in size by a rewrite.
6 Data record which has been increased in size by a rewrite and therefore no longer fits into the original record area. Instead, this record points to another record area which contains the record.
7 Record pointed to by a type 6 record.
8 Record pointed to by a type 6 record.
5 Display statistics about each key index structure in the index file. This includes information about how much space is being saved by key compression.

These levels are cumulative, so selecting 4 includes 1, 2 and 3.

Examples

If you want to check the structure of the data file (+1) and check the structure of the index file (+8), then simply add 1 and 8, which gives 9.

rebuild test.dat /f:c9

To do a full integrity check on a file, displaying all possible information:

rebuild test.dat /f:c63d5

A non-zero value is returned if the file is corrupt in any way.

/i

The /i option displays information about the input and output files, including record lengths, file type and key structure. If you only want to see the information and do not want to perform any other operation, use the /n option instead.

For example, the following information is displayed for an index rebuild:

rebuild mast /i
Rebuild successful - records read=49
File : MAST

    Largest record length  -        353
    Smallest record length -        353
    Average record length  -        353
    Organization -              Indexed
    Recording mode -                Fixed
    Maximum record length  -        353
    Minimum record length  -        353
    Keys description:
            Start char  Length
            Key -   0
                    1   +9
/k

The /k option defines the key structure for an indexed file. This is used for rebuilding the index of an indexed file where the index part is missing or corrupt. The parameters for this option define the keys. The definition of a key is separated from the definition of the next key by a colon (:). Each key can be defined as a number of parts (split key), each part being separated by a comma (,). Each part is defined by its start character position and its length in characters. The start position and the length are separated by a plus (+) or L. The first character position in a record is position 1.

Alternate keys terminated by the character d are defined as WITH DUPLICATES.

Sparse keys can be specified by the parameter s, indicating sparse. The s parameter must be followed by the sparse character itself. If the sparse character is non-printable, or a lower or upper case 'h', the s parameter must be followed by hvalue, where value is the hexadecimal ASCII value of the sparse character.

Different key compression values can be specified for each key by using the c parameter, indicating compression. The c parameter must be followed by a key compression value between 0 and 7.

Examples

/k:1+20

This example defines a single key, starting at character position 1 and 20 characters in length.

/k:5+5:20+1d:40+2,43+10

This example defines three keys. The first key, the primary key, starts at character position 5 and is 5 characters in length; the second key, an alternate key allowing duplicates, starts at character position 20 and is 1 character in length; the third key, a split alternate key, has two parts, the first starting at character position 40 and 2 characters in length and the second starting at character position 43 and 10 characters in length.

/k:1+5:20+10dsZ

This example defines two keys. The first key, the primary key, starts at character position 1 and is 5 characters in length; the second key, an alternate, sparse key allowing duplicates, starts at character position 20 and is 10 characters in length, the sparse character is Z.

/k:1+5:20+10dsh0

This example defines two keys. The first key, the primary key, starts at character position 1 and is 5 characters in length. The second key, an alternate, sparse key allowing duplicates, starts at character position 20 and is 10 characters in length; the sparse character is the null character.

/k:1+10:11+20dc3

This example defines two keys. The first key, the primary, starts at character position 1 and is 10 characters in length. The second key, an alternate compressed key allowing duplicates, starts at character position 11 and is 20 characters in length. The types of key compression being used are compression of duplicates (1) and compression of leading characters (2).

/n

The /n option displays the same information about the file as the /i option, but without doing any other processing.

/o

The /o option specifies the organization of a file that is to be converted. If the parameter is omitted, indexed is assumed. The organization is identified by a single letter, as follows:

/o:s    sequential/o:r    relative/o:i    indexed (the default)

The output file has the same organization as the input file, but in a format suitable for this COBOL system. However, you can create indexed files from sequential and relative files by adding the letter i after the s or r. To create an index, you specify the key structure with the /k option. The index file, along with the corresponding data file is created separately to the original, so you must specify a name for the output file.

For example:

/o:ri/k:1+2:3+10d 

converts a relative file into an indexed file with the key structure specified.


Notes:


/q

The /q option specifies a quick rebuild of an index. A quick rebuild is faster than a standard rebuild because it uses an alternative rebuilding technique which reduces the number of calls made to the file handler and because no information is displayed on the screen. The /e option, if specified, is ignored.

/r

The /r option defines the record lengths and recording mode of a file. Usually, this information is obtained by Rebuild from the input file and transferred directly to the output file. However, when converting to and from Btrieve files using the /s and /t options, you must consider the following.

For example:

/r:f record-length 

specifies a fixed length record format with records of record-length, for example, /r:f100.

/r:v min-record-length max-record-length

specifies a variable length format with the maximum and minimum record lengths separated by a hyphen; for example, /r:v100-200.

/s

The /s option specifies the format of the input file. It can be used, in conjunction with the /t option, to convert a file to the format used by this COBOL system.


Note: If you use this option, you must also specify the /r option.


You specify the input file as follows:

Format
Description
/s:btrv
/s:c-isam
/s:lii
/s:mf
/s:mf4
/s:mf8
Btrieve format.
C-ISAM format.
LEVEL II V2.5 COBOL format.
Format used by this COBOL system.
IDXFORMAT"4" format.
IDXFORMAT"8" format.

Note: You do not need to specify /s:C-ISAM, as Rebuild automatically recognizes C-ISAM files.


For example:

/s:btrv 

specifies that the input file is a BTRIEVE file.

By default the output file is in the same format as the input file but this option can be used in conjunction with the /t option to convert a file to the format used by this COBOL system.


Note: You cannot use this option to rebuild the corrupt or deleted index of a Btrieve file.


/t

The /t option specifies the index format of the output file as follows:

/t:btrv
/t:c-isam
/t:lii
/t:mf
/t:mf4
/t:mf8
Btrieve format.
C-ISAM format.
LEVEL II V2.5 COBOL format.
Format used by this COBOL system.
IDXFORMAT"4" format.
IDXFORMAT"8" format.


Note: On UNIX systems, you must specify /t:cisam (without the hyphen) for C-ISAM format files.


You can use the /t option in conjunction with the /s option to convert a file to the format used by this COBOL system.

/v

The /v option displays a record count which is incremented as the file is processed.


Warning: Do not use the /v option if you are re-directing the output.


/x

The /x option defines the key-of-reference, which is used to define the order in which the data is written when reorganizing an indexed file. The parameter for this option is the number of the key to be used. The primary key is 0, the alternate keys are numbered, starting at 1, in the order they are specified in the SELECT statement for the file. If the /x option is not specified, the primary key (key 0) is assumed.

For example:

/x:2 

organizes the data in the order specified by the second alternate key in the SELECT clause of the creating program.

7.3.2 Examples of Operation

rebuild badms001.dat, ms001.dat/i

Reorganizes the file. The data is written in primary key order. No information is displayed until the reorganization is complete.

rebuild badms001.dat, ms001.dat/x:3

Reorganizes the file. The third alternate key is used to determine the order in which the data is written.

rebuild ms001.dat

Rebuilds the index of the file. It is assumed that this index file ms001.idx exists, and is not corrupt.

rebuild ms001.dat/k:1+20/i

Rebuilds the index of the file. The index (.idx) file does not need to exist, and is ignored if it does. A new index file is created using the key definition specified on the command line. This does not need to correspond to the original key definition used when the file was created. No information is displayed until the rebuild is complete.

rebuild infile.dat,outfile.dat /t:btrv

Converts a file in the format used by this COBOL system to a Btrieve file.

rebuild infile.dat,outfile.dat /s:btrv /t:mf /r:v12-20

Converts a Btrieve file to the format used by this COBOL system and sets the recording mode to variable, the minimum record length to 12 and the maximum record length to 20.

rebuild infile.dat, outfile.dat /s:c-isam /c:d1 /t:mf

Converts a C-ISAM file to the format used by this COBOL system and compresses the data file.

rebuild infile.dat, outfile.dat /o:ri /k:1+2:3+10d /c:i7

Generates an index, with key compression, for a relative file.

rebuild infile.dat, outfile.dat /s:lii /t:lii

Reorganizes a LEVEL II V2.5 COBOL file and retains the LEVEL II structure on the output file.

set data=\tmp.dat
rebuild data /i

Reorganizes and displays information about the file \tmp.dat.

7.4 Parameter Files

At any point on the command line, an at character (@) followed by a filename indicates that parameters should be taken from the named file. The contents of the file are treated as if they were part of the command line.

The parameter file is an ASCII text file which must not be bigger than 1024 bytes. Comments can be included in the file by preceding them with an asterisk (*).

Example
rebuild badms001.dat, ms001.dat @ms001.par

where ms001.par is an ASCII text file containing the following line:

/k:1+20, 25+5:40+12:60+3, 85+10d

or the following lines (which are equivalent to the line above):

 * Works master file - key parameters
 /k:
 1+20  ,        * prime key - first part
 25+ 5 :        *               - second part 
 40+12 :        * 1st alternate key 
 60+ 3 ,        * 2nd alternate key (with duplicates)
            *               - first part
 85+10d     *               - second part

If a parameter in a parameter file is in error, Rebuild displays an error message and the commmand line (but not the line from the parameter file).

7.5 Redirection of Information

All information displayed by the Rebuild utility can be redirected to a text file using the standard operating system redirection symbols:

>     For creating a new file
>>   For extending an existing file

This means that the results of a number of rebuild commands can be collected, and viewed on completion.


Note: In order to use redirection, the S5 run-time switch must be set.


Example
rebuild oldms001.dat,ms001.dat /k:1+20 /i > rebuild.prt
rebuild oldrt549.seq,rt549.seq /i >> rebuild.prt
rebuild badms001.dat,ms001.dat@ ms001.par >> rebuild.prt

The information for all three operations is placed in the text file, rebuild.prt. Note that you must not use the /v option when you are redirecting output.

7.6 Callable Rebuild

Rebuild can be executed from within a COBOL program, as follows:

call "callrb" using string-parameters status-parameter

where the parameters are:

string-parameters The parameters you specify on the Rebuild command line. This parameter is a PIC X(600) item. It must be 600 bytes long since Rebuild scans the command line backwards from offset 599 to find where the text in the command line finishes.
status-parameter A PIC XX COMP X item containing the returned file status.

Because it is being called from within another program, Rebuild does not know the status of the display screen, so it displays none of its usual messages. If an error occurs or the rebuild is not successful, RETURN-CODE contains a non-zero value and status-parameter contains the file status. You should always check RETURN-CODE after a call to Rebuild. Possible values of RETURN-CODE are:

Value
Description
0 Rebuild executed successfully.
1 An error occurred on the input file such as file not found or invalid file format - check status-parameter.
2 An error occurred on the output file - check status-parameter.
9 The parameter list contained an error such as an invalid option or an invalid combination of options.

If an error occurs, you should execute Rebuild from the command line using the same file and the same parameters so that you can see the information that is displayed on the screen.

Example

01 string-parameter     pic x(600).
01 status-parameter     pic xx comp-x.
...
   move "infile.dat, outfile.dat /s:lii /c:d1" to string-parameter
   call "callrb"
      using string-parameters,status-parameter
   end-call
   if return-code not = 0
    ...
      * code to check status-parameter
    ...
    end-if

7.7 Creating Your Own Rebuild

The rebuild.exe supplied with this product contains everything you need to rebuild any Micro Focus file. Consequently, rebuild.exe is very large because it contains modules for every job that it can do. If you want to, you can build your own Rebuild using only those modules which you require.

DOS, Windows and OS/2:
The following is a list of the object modules that make up rebuild.exe. The list is divided into those that are mandatory and those that are optional on DOS, Windows and OS/2.

Objects that you must link in:

REBUILD Main rebuild module
or
callrb Main callable rebuild module

RBLDMAIN Command line processing
RBLDSUB Processes files and calls file handlers
EXTERNL Rebuild uses external data item
EXTFH Micro Focus Callable File Handler

Objects that you can link in, depending on the functions you use:

MSCVSUB Needed if converting Microsoft format files to Micro Focus
CDFH Needed when /d option is used
XFHNAME Needed if filename mapping is required
CBLDC001 Needed if data compression is used(DATACOMPRESS"1")
CBLDC003 Needed if data compression is used (DATACOMPRESS"3")
FHREDIR Needed if rebuilding a file through fileshare
FHRDRPWD Needed by FHREDIR
FHXSCOMP Needed by FHREDIR
XFH2BTR Needed if converting Btrieve format files
DBTRV Needed by XFH2BTR on DOS only
OBTRV Needed by XFH2BTR on OS/2 only
WBTRV Needed by XFH2BTR on Windows only
IDXCHECK Needed if index file validation functionality is required.(You also need to ensure the file idxcheck.lng is in the current directory or a directory specified by COBDIR).
COBNLSMG Needed by modules that display messages.
BASICVAL Needed to validate files other than IDXFORMAT"3", IDXFORMAT"4" or C-ISAM.

16-bit:
On the 16-bit system, it may be necessary to make the stack size larger than the default. This is done by setting the link option:

LINK=/st:3000

Examples

To create a minimal rebuild for DOS:

cob -x:lrs REBUILD RBLDMAIN RBLDSUB EXTERNL EXTFH

for 16-bit COBOL systems on Windows:

cob -x:wrs REBUILD RBLDMAIN RBLDSUB EXTERNL EXTFH

for 16-bit COBOL systems on OS/2:

cob -x:prs REBUILD RBLDMAIN RBLDSUB EXTERNL EXTFH

for 32-bit COBOL systems on OS/2, Windows NT and Windows 95:

cbllink rebuild rbldmain rbldsub

To create a program that calls Callable Rebuild for DOS:

cob -x:lrs UserProg CALLRB RBLDMAIN RBLDSUB EXTERNL EXTFH

for 16-bit COBOL systems on Windows:

cob -x:wrs UserProg CALLRB RBLDMAIN RBLDSUB EXTERNL EXTFH

for 16-bit COBOL systems on OS/2:

cob -x:prs UserProg CALLRB RBLDMAIN RBLDSUB EXTERNL EXTFH

for 32-bit COBOL systems on OS/2, Windows NT and Windows 95:

cbllink callrb rbldmain rbldsub

UNIX:
The following is a list of the object modules that make up rebuild.exe. On UNIX systems, these are found in $COBDIR/src/rebuild. The list is divided into those that are mandatory and those that are optional on UNIX.

Objects that you must link in:

REBUILD Main rebuild module
or
callrb Main callable rebuild module

RBLDMAIN Command line processing
RBLDSUB Processes files and calls file handlers
MSCVSUB Converts Microsoft format files to Micro Focus
CDFH Used by /d option
IDXCHECK Used for index file validation. Ensure that thefile idxcheck.lng is in the currentdirectory or a directory specified by COBDIR.

Objects that you can link in, depending on the functions you use:

XFHNAME Needed if filename mapping is required
CBLDC001 Needed if data compression is used (DATACOMPRESS"1")
CBLDC003 Needed if data compression is used (DATACOMPRESS"3")
FHREDIR Needed if rebuilding a file through fileshare
FHRDRPWD Needed by FHREDIR
FHXSCOMP Needed by FHREDIR
XFH2BTR Needed if converting Btrieve format files
DBTRV Needed by XFH2BTR on DOS only
OBTRV Needed by XFH2BTR on OS/2 only
WBTRV Needed by XFH2BTR on Windows only
BASICVAL Needed to validate files other than IDXFORMAT"3", IDXFORMAT"4" or C-ISAM.

Examples

To create a minimal rebuild for UNIX:

cob -x rebuild.o rbldmain.o rbldsub.o idxcheck.o mscvsub.o cdfh.o

To create a program that calls Callable Rebuild for UNIX:

cob -x userprog.o callrb.o rbldmain.o rbldsub.o idxcheck.o
   mscvsub.o cdfh.o

7.8 Error, Information and Warning Messages

The following sections list the error, information and warning messages that Rebuild displays with an explanation of the message and, for Error and Warning messages, a solution.

For information on the error messages output by the Rebuild validation (-f) option, see the section Rebuild Validation Error Messages.

7.8.1 Error Messages

When an error is encountered, the command line is displayed, followed by an error message. For command line errors, a caret (^) is displayed under the point in the command line where the error occurred.

7.8.1.1 Command Line Errors

***Invalid parameter combination
/k option is required for conversion to indexed file
Data compression out of range
Data compression specified more than once
Input file same as output file
Index compression out of range
Index compression specified more than once
Invalid command - /n not allowed with Microsoft format file
Invalid command - must specify output file for conversion
Invalid command line
Invalid compression choice - must be 'd' or 'i'
Invalid format
Invalid key length - cannot be zero
Invalid key specification - key not contained in record
Invalid key start - cannot be zero
Invalid key structure - '+' expected
Invalid option
Invalid organization
Invalid organization - 'i' or nothing expected
Invalid organization - must be indexed for index rebuild
Invalid organization - must be indexed for reorganization
Invalid record length - cannot be zero
Invalid record lengths - maximum must not be less than minimum
Invalid record parameter - '-' expected
Invalid record type - 'F' or 'V' expected
Invalid source format
MS2X specified for non-indexed file
Must have key definition (/k option) with MS2X
No output file specified for /t to refer to
No output file specified for data compression
Number expected
Output file was not specified for indexed output
Parameter file not found

7.8.1.2 Rebuild Errors

***Error on input file - bad file structure
***Error on input file - Communications failure
***Error on input file - Disk input output error
***Error on input file - disk space exhausted
***Error on input file - duplicate key - record not written:
***Error on input file - file is not a BTRIEVE indexed file
***Error on input file - file is not a C-ISAM indexed file
***Error on input file - file is not an LII indexed file
***Error on input file - file is not an MF indexed file
***Error on input file - file is not an MF4 indexed file
***Error on input file - file is not a variable relative file
***Error on input file - file is not a variable sequential file
***Error on input file - File locked
***Error on input file - file must be indexed for rebuild
***Error on input file - file must be indexed for reorganization
***Error on input file - file not found
***Error on input file - illegal filename specified
***Error on input file - invalid /x: key-of-reference
***Error on input file - no record size information
***Error on input file - not MF indexed or variable format
***Error on input file - record size > specified
***Error on input file - status xx ***Error on input file - status 9/yyy
***Error on output file - record length < min or > max
***Error on output file - status xx ***Error on output file - status 9/yyy

7.8.2 Information Messages

The following information messages are output when Rebuild is processing a file.

Converting file
Rebuild aborted
Rebuild successful
Rebuilding file
Rebuilding index
Records processed
Reorganization successful
Reorganizing file

7.8.3 Warning Messages

Depending on the operation selected, some command line options are unnecessary. In such cases, the unnecessary option is indicated but ignored and processing continues. Note that the option may be correct, but omission of other information may have caused Rebuild to select the wrong process. If this is the case, correct the command line and re-run.

** WARNING ** - Option ignored - /k option not needed for a reorganization
*** WARNING *** - Option ignored - /k option not needed with /n
*** WARNING ***. Option ignored - /k option not needed for ms2 conversion.
*** WARNING *** - Option ignored - /r option not needed for a reorganization
*** WARNING *** - Option ignored - /x option not needed for index rebuild
*** WARNING ***. Option ignored - /x option not needed for ms2 conversion.

7.8.4 Rebuild Validation Error Messages

You might get the following error messages when you use the Rebuild validation (-f) option:

IC007-W INDEX FILE NOT PRESENT ONLY DATA CAN BE CHECKED
IC008-W INDEX FILE NOT PRESENT CANNOT CHECK FSL CHAIN

FSL is an abbreviation for Free Space List.

IC058-W CONTINUING FROM OFFSET : hex-address

hex-address specifies the hexadecimal address from which validation continues.

IC059-S POINTER RECORD MISMATCH
IC018-S BAD RECORD TYPE AT OFFSET : hex-address

hex-address specifies the hexadecimal address of ofset at which the bad record type occurs.

IC017-S BAD RECORD LENGTH AT OFFSET : hex-address

hex-address specifies the hexadecimal address of the offset at which the bad record length occurs.

IC019-S BAD COMPRESSED LENGTH AT OFFSET : hex-address

hex-address specifies the hexadecimal address of the offset at which the bad compressed length occurs.

IC063-S ERROR READING FILE - STATUS : nm

n specifies the first byte of the file status, m the second byte of the file status

IC001-S FILE TYPE NOT SUPPORTED
IC002-S DATA AND INDEX ORGANIZATIONS DO NOT MATCH
IC003-S RECORD LENGTH INCONSISTENCY
IC004-S DATA FILE IS MISSING
IC005-S RECORDING MODES INCONSISTENT
IC006-S EOF IN DATA FILE INCONSISTENT WITH FILE LENGTH
IC007-S EOF IN IDX FILE INCONSISTENT WITH FILE LENGTH
IC008-W DATA AND IDX FILE CREATION TIMES INCONSISTENT
IC009-S POINTER RECORD MISMATCH
IC010-S FSL RECORD REFERENCES AN INVALID ADDRESS
IC011-S THE FSL CONTAINS MORE ENTRIES THAN THERE ARE DELETED RECORDS

FSL is an abbreviation for Free Space List.

IC012-S THE FSL CONTAINS LESS ENTRIES THAN THERE ARE DELETED RECORDS

FSL is an abbreviation for Free Space List.

IC013-S THE NUMBER OF DELETED RECORDS DOES NOT MATCH NUMBER OF FSL ENTRIES

FSL is an abbreviation for Free Space List.

IC014-S FSL SECURITY BIT MISMATCH

FSL is an abbreviation for Free Space List.

IC015-S RECORD LENGTH IN FSL ENTRY IS SHORTER THAN ACTUAL RECORD

FSL is an abbreviation for Free Space List.

IC016-S AN ATTEMPT TO ALLOCATE MEMORY HAS FAILED
IC245-S INDEX NODE SECURITY BIT MISMATCH
IC246-S INDEX NODE ADDRESS IS ILLEGAL
IC247-S INDEX TREE IS MALFORMED
IC248-S INDEX NODE CORRUPT
IC249-S DUPLICATE KEY FOUND IN INDEX WHICH DOES NOT ALLOW DUPLICATES
IC250-S INDEX RECORD REFERENCES AN INVALID ADDRESS
IC251-S INDEX KEY DOES NOT CORRESPOND TO DATA RECORD
IC252-S INDEX DUPLICATE OCCURRENCE VALUE DOES NOT MATCH WITH THE DATA FILE
IC253-S DATA RECORD AND INDEX KEY COUNT MISMATCH (MAY BE DUE TO SUPPRESSED KEYS)
IC254-S NUMBER OF KEYS IN HEADER INCONSISTENT WITH ACTUAL NUMBER OF KEYS
IC017-S ERROR ON FILE OPEN
IC018-S ERROR OPENING OR WRITING TO TEMPORARY FILE


Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.

PreviousSharing Files File Handler Utilities (UNIX)Next"