Kbase P3524: Errors 137 and 23 with Progress 9.1C and EMPTY TEMP-TABLE
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  16/10/2008 |
|
Status: Verified
FACT(s) (Environment):
Progress 9.1C
SYMPTOM(s):
SYSTEM ERROR: Record continuation not found, fragment recid <recid>. (137)
SYSTEM ERROR: bfdiscon: rmrep failed. (23)
Both errors generated by the same client.
Application uses the EMPTY TEMP-TABLE statement.
CAUSE:
BUG# 20011211-009
CAUSE:
This is a known issue - the system errors are caused by an EMPTY-TEMP-TABLE statement in case there are two or more record buffers associated with the temp-table (the buffer may be explicit, as in the example, or implicit).
For example:
DEFINE TEMP-TABLE ttForTest NO-UNDO
FIELD ttField AS CHARACTER.
DEFINE BUFFER bufTest FOR ttForTest.
CREATE ttForTest.
ASSIGN ttForTest.ttField = "VALUE1":U.
CREATE bufTest .
ASSIGN bufTest.ttField = "VALUE2":U.
EMPTY TEMP-TABLE ttForTest. /* <-- This generates the System Errors. */The system errors do NOT indicate data corruption.
FIX:
A workaround is making sure that all buffers (explicit or implicit) are RELEASE'd before the EMPTY TEMP-TABLE statement.
RELEASE ttForTest.
RELEASE bufTest.
EMPTY TEMP-TABLE ttForTest. /* <-- Now it works. */Alternatively, you can upgrade to the latest patch for 9.1C, or later version of Progress / OpenEdge.