!*************************** AMUS Program Label ****************************!
! Filename: ISMFIX.BAS Date: 08/14/92 !
! Category: UTILITY Hash Code: 760-257-527-463 Version: 1.1(5) !
! !
! Initials: KON/AM Name: MARC SHEPPARD !
! Company: TRYMARC USA, INC. Telephone #: 5165896900 !
! Related Files: ISMFIX.DOC !
! Min. Op. Sys.: 1.0 Expertise Level: ADV !
! Special: For use by experienced SysOps Only ! The author assumes no !
! responsibility for consequential damage due to misuse !!!! !
! Description: Utility to Repair Ozoned Isam Rock. !
! !
!***************************************************************************!
======
ISMFIX
======
Description:
ISMFIX provides a fast and easy method of repairing the 3 most common forms
of ISAM File Corruption:
1) Blown IDA Free List Pointer.
Usually discovered by the reporting of a Basic Error #31 (Illegal Record
Number) when adding a new record to an ISAM File. Used as an alternative
to dumping and rebuilding the corrupt file, ISMFIX can save HOURS of time,
especially with large ISAM Files and/or numerous secondary index files.
Often caused by Faulty Record Locking, improper ISAM sequence or other
programming errors. ISMFIX will repair this problem in almost all cases!
2) Blown IDX Free List Pointer.
An unusual but not unheard of occurance. ISMFIX will usually reposition the
pointer, but the condition often reflects other problems within the Index
Structure. However, given that ISMFIX can't make the situation any worse
than it already is, you've got nothing to lose by trying! Generally caused
by locking problems or bad ISAM sequencing.
3) Active records on Free list.
This condition is a Blown IDA Free List Pointer waiting to happen. Its
causes are the same, yet as the Corrupted Record is not next on the Free
List, the run-time procedures have not YET been interrupted. ISMFIX will
report the condition, and allow you to rebuild the Free List, resulting in
a valid (and newly sequenced) IDA Free List Pointer. If multiple active
records exist on free list, you had better give serious thought to finding
the program bug(s) responsible!
Although ISMFIX will not help you fix the bad program code which caused the
problem, it will get you back up-and-running in a fraction of the time
usually required for such recovery !
Note: In its stock form, ISMFIX will accomodate IDA files of up to 100,000
records and IDX Files of 100,000 blocks. These limits were chosen in
an effort to minimize memory requirements. DO NOT attempt to run the
program with less than 150K of user memory. If your IDA file exceeds
100,000 records you MUST modify ISMFIX according to the instructions
in the header of the source code provided!
If you are using an external input routine (INFLD.SBR, INPUT.SBR, etc)
in-house, you may wish to incorporate it into the program. The program
will then support full file specifications.
Using ISMFIX
============
Step 1 - Get everyone out of ANY and ALL programs which access the
corrupted file.
Step 2 - Log into the account containing the corrupted IDX file.
Invoke ISMFIX.
Step 3 - At the prompt, enter the name of the corrupted file.
The Rock for the file will be displayed on the screen.
Step 4 - At the prompt, enter the display increment. The default
is 1000.
Step 5 - If the IDX is primary, select the proper file to process.
Process the IDA file if the IDA pointer is blown, the IDX
file if the IDX pointer is blown. If file is secondary
index this step will be omitted.
Step 6 - Stand By while ISMFIX builds an internal map of your link
structure. Any errors encountered will be reported.
Step 7 - A menu will appear on the screen. If no errors were encount-
ered and only one pointer was found, select option 1 to re-
write the rock. You are now finished.
If errors were encountered and/or multiple pointers found,
you will not be allowed to rewrite the rock:
IDA FILES ONLY - Select option 4 and the Free List will
be rebuilt.
IDX FILES - You are S.O.L !!!! The file will have to be
rebuilt!
Other Menu Options for IDA FILES.
Option 2 - Verify Free list
This option allows you to trace the free list from
base to termination to verify the allocated/free counts.
Option 3 - Verify Primary Key
This option will match primary key information to
corresponding record information and report any errors.
Option 4 - Dump Bitmap to Disk
This option will dump a bitmap image of the file's record
usage to the disk for further analysis.