Consultor Eletrônico



Kbase 18819: Error 43 on an After-Image Extent
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Unverified

SYMPTOM(s):

Error: ** Cannot find or open file <file-name>, errno = <number>. (43)

Error: ** Cannot find or open file db.a1, errno = 2. (43)

CAUSE:

The after-image file(s) cannot be found.
One possible cause is the loss of the disk where one or more of the after-image extent resided.

FIX:

We need to have Progress no longer reference the lost after-image file(s), and create brand new ones in their place.

1) If the two-phase commit is enabled for this database, disable it using:

proutil <db> -C 2phase end
2) Disable after-imaging using:

rfutil <db> -C aimage end
NOTE: The rfutil command may cause a considerable number of errors 43, and the expected message 'After-Image disabled (849)' might be 'drawned' among them. Even if that happens, after-images *will* be disabled after this command completes.

3) Truncate the BI file:

proutil <db> -C truncate bi
NOTE: The error (Cannot find or open file ? .a1) continues to occur.

4) Remove all the AI extents from the structure file:

prostrct remove <db> ai
This step must be repeated as many times as the number of after-image files.

5) Create a new structure file (say: newai.st), containing the location of the new after-image extents.

6) Use prostrct add to add the new after-image extents to the current database. Eg:

prostrct add <db> newai.st
7) Optionally run:

prostrct list <db>
in order to synchronize the database's .st file with the current structure.

8) Backup the database with or mark it backed up:

probkup <db> .....
or

rfutil <db> -C mark backedup
9) Re-enable after-imaging with:

rfutil <db> -C aimage begin
10) Re-enable two-phase commit if disabled in Step 1:

proutil <db> -C 2phase begin