Consultor Eletrônico



Kbase 18989: Errors 6833 and 6819 when running prostrct repair
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   7/15/2010
Status: Verified

SYMPTOM(s):

Errors 6833 and 6819 when running prostrct repair

Error occurred on line <line number>. (6819)

Extent size MUST be a multiple of 16. (6833)

Using a database block other than 1K

In the structure file, the value of extent size is a multiple of 16

The database has been converted to version 9 with 'proutil -C conv89'.

FACT(s) (Environment):

Progress 9.1x
All Supported Operating Systems

CAUSE:

Bug# OE00073219

CAUSE:

The problem lies in the fact that Progress changed the algorithm in Version 9 to validate that the extent size is a multiple of 16 * db block size. For example:

An extent with a fixed size of 4000 is a multiple of 16 (4000/16 = 250). In Version 9 this is not valid when you check it with PROSTRCT repair. The formula now is:

(4000/(16*dbblocksize) with an 8K block size.

that looks like:

4000/128 = 31.25

which is not valid.

FIX:

Upgrade to OpenEdge 10.1A or later.

A workaround is to round up the structure file extent sizes so that it meets the formula requirements of being divisible by (16*dbblocksize).

Then, do not use this structure file for anything other than the PROSTRCT REPAIR command.

In the example shown in the EXPLANATION section, the extent size should be equal to 4096.

Just round up the decimal 31.25 to 32, then multiply it by (16*dbblocksize) which will give you 4096.

** IMPORTANT NOTE **

Do not use this .st file for prostrct builddb in the case of a lost .db file or prostrct unlock, because this will corrupt the database. It should only be used as a workaround for the PROSTRCT repair command.
The reason why this st file should not be used with any other command, but can be used in this situation is that the PROSTRCT REPAIR command doesn't update the structure of the database.
It would be advisable to bring this database in line with the structure of the new st file through procopy, prorest, or any other appropriate method by running "prostrct list" to create a new .st file.