Kbase P7424: Investigating the cause of SYSTEM ERROR: bfdiscon: rmrep failed. (23)
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/11/2008 |
|
Status: Verified
SYMPTOM(s):
Investigating the cause of SYSTEM ERROR: bfdiscon: rmrep failed. (23)
SYSTEM ERROR: bfdiscon: rmrep failed. (23)
SYSTEM ERROR: Record continuation not found, fragment recid <recid>. (137)
DBKEY <number> w/free space less than <CREATELIM> found on RM chain. (3896)
SYSTEM ERROR: Invalid record with recid <recid>. (2358)
Field <field-name> from <file-name> record (recid <RECID>) was missing from FIELDS phrase. (8826)
FACT(s) (Environment):
All Supported Operating Systems
Progress 9.x
OpenEdge 10.x
CAUSE:
These errors that basically refer to a recid that was not found in the database block addressed by the recid during read/write opperations.
There are several known reasons for this:
1. Database corruption, due in part but not exclusively to the use of the -F option to skip database crash recovery, an incomplete database restore or system failures that result in disk corruption
2. Index corruption.
3. Large records (>31K bytes long)
4. Using the EMPTY TEMP-TABLE statement during a transaction in Progress 9.1C (bug #20011211-009).
FIX:
0. Verify that there is a valid database backup before proceeding.
1. Scan the database for bad records AND bad blocks. This will also scan the RM-chain (in the case of error 3896 showing up on a dbanalys below).
a.) Truncate the bi
Run the command: "proutil dbname -C truncate bi"
b. ) Scan the database
Run the command: "proutil dbname -C dbscan >> scan.out
2. This will check the all of the indexes in the database and log any errors in the database log file.
Run the command: "proutil dbname -C idxcheck all".
3. This step will show any records near 32K that may have exceeded the 32K buffer space limit (character fields or 4GL imported records are the usual culprits).
Run the command: "proutil dbname -C dbanalys > dbanalys.txt"
4. Review the code of the program(s) run to see if they include the EMPTY
TEMP-TABLE statement.