An example run through the Indexed File Recovery utility is described in Figure 1 through Figure 4. The recovery session is started in this example by the following command:
recover1 master.inx dropout1
Figure 1 shows information about the file master.inx.
Under the name of the file to be recovered, a description of the state of the file is displayed. Any of the following messages may appear:
If the KIB is corrupt, and a template filename is not entered, recover1 will prompt the user for the required KIB information before continuing.
If more keys exist than can appear on this screen, as many as possible appear, after which you are asked if you want to see the remaining key descriptors. This continues until all keys are shown. You are then asked to verify that this is the file you want to recover. Entering N terminates the program. Entering Y continues the program.
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx This file has not been marked as needing recovery! Disk Block Size: 1024 Minimum Record Length: 80 Disk Block Increment: 1024 Maximum Record Length: 80 Number of Index Blocks: 170 Number of Records: 150 Key Position Size Remarks PRIME 1 8 1 9 8 2 17 8 duplicates allowed Is this the file you wish to recover (y/n)?
Figure 1: Indexed File Recovery Utility: File Recovery Verification
Figure 2 shows a summary of the information that is gathered during the file integrity scan.
You are then asked if you would like to proceed with the recovery process. Entering N terminates the program. Entering Y continues the program. The “Average record length” is computed by adding the length of all the records in the file and dividing by the number of records. The “Average data size” is computed by adding the size that the record actually occupies in the file and dividing by the number of records. This size allows you to determine how much your data can be compressed.
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx Drop File: dropout1 This file has not been marked as needing recovery! Disk Block Size: 1024 Minimum Record Length: 80 Disk Block Increment: 1024 Maximum Record Length: 80 Number of Index Blocks: 170 Number of Records: 150 Phase: Integrity Scan Estimated Recoverable: 150 | Total | Total | First | Last | Block Type | Found | Corrupt | Corrupt | Corrupt | KIB | 1 | 0 | | | Data | 102 | 0 | | | Node | 61 | 0 | | | Empty | 6 | 0 | | | Invalid | 0 | 0 | | | Unreadable | 0 | 0 | | | Average data size: 14, Average record length: 80 Do you wish to proceed with recovery (y/n)?
Figure 2: Indexed File Recovery Utility: recover1 Summary
Figure 3 shows the information that is displayed while recover1 is rebuilding the node blocks for the prime key.
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx Drop File: dropout1 This file has not been marked as needing recovery! Disk Block Size: 1024 Minimum Record Length: 80 Disk Block Increment: 1024 Maximum Record Length: 80 Number of Index Blocks: 170 Number of Records: 150 Phase: Build Node Blocks Estimated Recoverable: 150 Key being processed: PRIME Records recovered: 100 Records written to drop file: Block being processed: 13 Number of data blocks moved (for truncate): 5
Figure 3: Indexed File Recovery Utility: recover1 Statistics
Figure 4 shows the information that is displayed after recover1 terminates successfully. The two lines regarding truncation are shown only when the T option is specified.
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx Drop File: dropped This file has not been marked as needing recovery! Disk Block Size: 1024 Minimum Record Length: 126 Disk Block Increment: 1024 Maximum Record Length: 126 Number of Index Blocks: 120 Number of Records: 100 Phase: Build Node Blocks Estimated Recoverable: 100 Key being processed: PRIME Records recovered: 100 Records written to drop file: Block being processed: 120 Truncate option specified - number of data blocks moved: 4 Truncate action successful - new Number of Index Blocks: 112 Recovery successful.
Figure 4: Indexed File Recovery Utility: recover1 Finished Successfully
In the example shown in Figure 5, the KIB of the file has been corrupted, and key information must be entered for the file to be recovered. This example shows manual entry of KIB information, however, it is recommended that a template file be used with the -K option to recover the KIB information. Underlined characters have been entered by the user.
The recovery session is started by the following command:
recover1 master.inx dropout1 -k
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx Last error was 98,38 at 9:29 on 03-21-2008 Are any of the keys in this file segmented (split) (y/n)? y Key #: PRIME Segment #: 2 Starting Position? 10 Length? 5 Another Segment (y/n)? n Total Key Length = 13 Duplicates Permitted (y/n)? n Another Key (y/n)? n
Figure 5: Indexed File Recovery Utility: Entering Key Information
Figure 6 shows an example of entering the remainder of the KIB information. Underlined characters have been entered by the user.
Indexed File Recovery Utility Recover1 for Visual COBOL Indexed File: master.inx Last error was 98,38 at 9:29 on 03-21-2008 Minimum Record Length (in bytes)? 80 Maximum Record Length (in bytes)? 80 Disk Block Size (in bytes)? 1024 User Block Size (1=none/2=in bytes/3=in records)? 1 Data Compression (y/n)? y Space Character Value? 32 Zero Character Value? 48 Key Compression (y/n)? y Space Character Value? 32 File Version Number (0/2/3/4)? 4 Atomic I/O Enabled (y/n) y File Lock Limit (in GB)? 2 Disk Block Increment (in bytes)? 1024 Allocation Increment (in blocks)? 8 Force Write Data Blocks (y/n)? n Force Write Index Blocks (y/n)? n Force to Disk (y/n)? n Force File Closed (y/n)? n Code Set (1=none/2=ASCII/3=EBCDIC)? 1 Collating Sequence (1=none/2=ASCII/3=EBCDIC)? 1 Is this information correct (proceed with recovery) (y/n)? y
Figure 6: Indexed File Recovery Utility: Entering KIB Information
After the key and KIB information has been successfully entered, the recovery process proceeds the same as before, beginning with Figure 1. If a template file had been specified on the command line or a template filename had been entered when prompted, the screens prompting for the key and KIB information would not have been displayed. A template file must be specified if the KIB is corrupt and the file uses either an enumerated code set or an enumerated collating sequence.