Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
File Analysis and Recovery | ||||||||
Changed: | ||||||||
< < | The appx utilities, found in the /tools directory below the appx engine, allow batch manipulation and recovery of AppxIO files. In the Windows environment, execute these commands from a DOS popup box. Or use the command line to perform the same functions in Unix. | |||||||
> > | The appx utilities, found in the /tools directory below the appx engine, allow batch manipulation and recovery of AppxIO files. In the Windows environment, execute these commands from a DOS popup box. Or use the command line to perform the same functions in Unix. | |||||||
Command Line Invocations: appx.exe or appx'appx.exe' lets you perform switched invocations of APPX for Windows, without clearing the DOS box. From a Unix prompt, the command is simply 'appx'. Here's how you would use switches to verify and analyze APPX data files: | ||||||||
Changed: | ||||||||
< < |
| |||||||
> > |
| |||||||
| ||||||||
Changed: | ||||||||
< < | Usage: | |||||||
> > | Usage: | |||||||
-k define a new keymap -m=<[user_id:]keymap_name> override keymap ID -d=<database_id> override startup database | ||||||||
Line: 28 to 24 | ||||||||
-l=<log file name> start a license server -r (or -recover) recover damaged files (see below) | ||||||||
Changed: | ||||||||
< < | Restrictions: | |||||||
> > | Restrictions: | |||||||
An application_id and process_type must always be included when specifying a process_name. If an application_id is included without specifying a process_type/name, the startup menu for the application is used. | ||||||||
Line: 38 to 34 | ||||||||
Substituting the "-k" through "-l=" switches will let you specify particular actions upon invoking the appx.exe engine. | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
Changed: | ||||||||
< < | (Consider the possibility of building your desired command line invocation strings in MS Word, Notepad or WordPad, then cutting and pasting them into your DOS box.) | |||||||
> > | (Consider the possibility of building your desired command line invocation strings in MS Word, Notepad or WordPad, then cutting and pasting them into your DOS box.) | |||||||
Changed: | ||||||||
< < | For more information on appxutil.exe, see the APPXUTIL Overview. | |||||||
> > | For more information on appxutil.exe, see the APPXUTIL Overview. | |||||||
Verifying and Analyzing a File
| ||||||||
Line: 54 to 49 | ||||||||
If the invocation of this command results in no output, then the file passes verification. Any output from this command means that the file fails verification. | ||||||||
Changed: | ||||||||
< < | To analyze a damaged file ... | |||||||
> > | To analyze a damaged file ... | |||||||
| ||||||||
Changed: | ||||||||
< < | ... gives you a"BRF>" prompt for {filename} . The most useful command at this prompt is ...
| |||||||
> > | ... gives you a"BRF>" prompt for {filename} . The most useful command at this prompt is ... | |||||||
Changed: | ||||||||
< < | VERIFY KEY #ALL | |||||||
> > | VERIFY KEY #ALL | |||||||
which performs counts the number of records in the .dat portion of the file verifying the .dat as it goes, and verifies all Keys in the .key portion of the file. Other useful commands are:
HELP - list all available commands. | ||||||||
Line: 89 to 81 | ||||||||
(For quite large files, it may be faster to use the 'recover.exe' procedure below, the 3)CreateFiles to recreate your keyfile, albeit at the cost of more designer time required to do this safely.) If the file doesn't pass COUNT REC analysis, you have a seriously damaged *.dat file. Your best bet at this point is to use the "Recover.exe" procedure below, or if necessary restore from backup. | ||||||||
Changed: | ||||||||
< < | FREELIST damage | |||||||
> > | FREELIST damage | |||||||
Changed: | ||||||||
< < | A type of file damage that VERIFY KEY #ALL does not tell you about is freelist damage. The freelist is the list of pointers in AppxIO files that point to deleted records. This list can get damaged. It could for example point to a live record, indicating erroneously that it is deleted. | |||||||
> > | A type of file damage that VERIFY KEY #ALL does not tell you about is freelist damage. The freelist is the list of pointers in AppxIO files that point to deleted records. This list can get damaged. It could for example point to a live record, indicating erroneously that it is deleted. | |||||||
Up through APPX version 4.0.a (and perhaps higher), the menu driven Verify Integrity utilities, the 'appx -v={filename}, and the 'appx -an={filename}', VERIFY KEY #ALL option don't detect such damaged freelist conditions. | ||||||||
Line: 111 to 103 | ||||||||
If the file doesn't pass #ALL verification, but does pass COUNT REC verification, then it means that the *.dat portion of the file is probably OK, but the *.key indices are probably damaged. In this case, rename or delete the *.key file, then run 3)CreateFiles. This will recreate your indices from scratch. It will then be safe to export and re-import the file. | ||||||||
Changed: | ||||||||
< < | (For quite large files, it may be faster to use the 'recover.exe' procedure below, then 3)CreateFiles to recreate your keyfile, albeit at the cost of more designer time required to do this safely.) | |||||||
> > | (For quite large files, it may be faster to use the 'recover.exe' procedure below, then 3)CreateFiles to recreate your keyfile, albeit at the cost of more designer time required to do this safely.) | |||||||
Changed: | ||||||||
< < | If the file doesn't pass COUNT REC analysis, you have a seriously damaged *.dat file. Your best bet at this point is to use the recover.exe procedure below, or if necessary restore from backup. | |||||||
> > | If the file doesn't pass COUNT REC analysis, you have a seriously damaged *.dat file. Your best bet at this point is to use the recover.exe procedure below, or if necessary restore from backup. | |||||||
File Recovery: appx -r (or -recover) | ||||||||
Changed: | ||||||||
< < | Usage: | |||||||
> > | Usage: | |||||||
| ||||||||
Line: 130 to 121 | ||||||||
This utility does not deal with duplicate primary or unique alternate indices. * IMPORTANT * Any file you recover must have a new *.key file built. This is done by renaming or deleting the *.key file, then running 3)Create Files. The *.key file contains pointers to all of the data records in the *.dat file. By recovering the *.dat file, you invalidate the original *.key file. | ||||||||
Changed: | ||||||||
< < | Example: | |||||||
> > | Example: | |||||||
The following command (in Windows) ... | ||||||||
Changed: | ||||||||
< < | ||||||||
> > | ||||||||
appx.exe -r C:\APPX\DATA\DDD\PAT\Data\BB.dat C:\APPX\DATA\DDD\PAT\Data\BB.new | ||||||||
Deleted: | ||||||||
< < | ||||||||
... will generate the following output and files ...
APPX Recover Utility: Input Filename = C:\32\DATA\ttt\PAT\Data\bb.dat | ||||||||
Changed: | ||||||||
< < | Output Filename = C:\32\DATA\ttt\PAT\Data\bx.dat File Header Information: | |||||||
> > | Output Filename = C:\32\DATA\ttt\PAT\Data\bx.dat File Header Information: | |||||||
File Organization = 3 ( Fixed Length Records ) Record Length = 19 UnixIO Version = 2 Freelist Starting Address = 0 | ||||||||
Changed: | ||||||||
< < | End of File Address = 617 Recover Completion Information: | |||||||
> > | End of File Address = 617 Recover Completion Information: | |||||||
Active Records Copied = 3 Deleted Records Removed = 0 Overhead Records Removed = 0 | ||||||||
Line: 166 to 152 | ||||||||
If 13)Verify 1)Integrity results in a 'Failed' condition, perform the following procedure: | ||||||||
Changed: | ||||||||
< < | 1) If you are running under Unix, su to the appx UserID. | |||||||
> > | 1) If you are running under Unix, su to the appx UserID.
2) Call up a MS-DOS Command box (or Unix Command prompt). Change directories: | |||||||
Changed: | ||||||||
< < | 2) Call up a MS-DOS Command box (or Unix Command prompt). Change directories: | |||||||
> > | cd {appx.exe.folder}\data\DDD\AAA\Data ... where ... | |||||||
Changed: | ||||||||
< < | cd {appx.exe.folder}\data\DDD\AAA\Data ... where ... | |||||||
> > | {appx.exe.folder} is the directory containing your 'appx.exe' engine, DDD is your Database ID (or for your Appl Design files, the Appl's 2-digit version#), and AAA is your Application ID. | |||||||
Changed: | ||||||||
< < | {appx.exe.folder} is the directory containing your 'appx.exe' engine, DDD is your Database ID (or for your Appl Design files, the Appl's 2-digit version#), and AAA is your Application ID. | |||||||
> > | ||||||||
Changed: | ||||||||
< < | (If you are using FMS Groups, adjust this 'cd' accordingly.) | |||||||
> > | (If you are using FMS Groups, adjust this 'cd' accordingly.) | |||||||
Example:
D: cd \APPX\data\DBS\APL\Data | ||||||||
Changed: | ||||||||
< < | 3) Type: | |||||||
> > | 3) Type: | |||||||
{appx.exe.folder}\tools\recover.exe FILE.dat FILE.new | ||||||||
Deleted: | ||||||||
< < | ||||||||
... where FILE is the name of the file you are recovering. | ||||||||
Changed: | ||||||||
< < | 4) From the Command prompt, perform: | |||||||
> > | 4) From the Command prompt, perform: | |||||||
ren FILE.dat FILE.dat.keep ren FILE.key FILE.key.keep ren FILE.new FILE.dat | ||||||||
Deleted: | ||||||||
< < | ||||||||
Changed: | ||||||||
< < | This moves the original FILE.* files out of the way (but keeps them around a while in case they're needed), then moves the recovered FILE.new into place as the new FILE.dat . | |||||||
> > | This moves the original FILE.* files out of the way (but keeps them around a while in case they're needed), then moves the recovered FILE.new into place as the new FILE.dat . | |||||||
Changed: | ||||||||
< < | 5) Go back to Database Management (or Design File Management) for your application. Run 3)Create Files on FILE . This creates a new FILE.key to go along with your recovered FILE.dat . | |||||||
> > | 5) Go back to Database Management (or Design File Management) for your application. Run 3)Create Files on FILE . This creates a new FILE.key to go along with your recovered FILE.dat . | |||||||
Changed: | ||||||||
< < | To double-check, run 13)Verify Menu, 1)Integrity to confirm that the file is OK, and that the Active Records Copied above equals the number reported in the Verify Integrity utility. | |||||||
> > | To double-check, run 13)Verify Menu, 1)Integrity to confirm that the file is OK, and that the Active Records Copied above equals the number reported in the Verify Integrity utility. | |||||||
Comments:Read what other users have said about this page or add your own comments. | ||||||||
Deleted: | ||||||||
< < | ||||||||
\ No newline at end of file | ||||||||
Added: | ||||||||
> > |