Kbase P2058: What does SYSTEM ERROR: bfblnd -- no ar active. (2) mean?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/22/2005 |
|
Status: Unverified
GOAL:
What does SYSTEM ERROR: bfblnd -- no ar active. (2) mean?
FIX:
This error message does not mean that the database is corrupted. Although the message is written to the database log, it is a 4GL client error that has nothing to do with the database itself.
Each block has an "ar unit" associated with it. Ar stands for "action
recovery". When there are nested blocks, each has an ar unit started at the
beginning of the block and closed out at the end of the block (by bfbld()). bfblnd() is called as part of the processing that occurs at the end of a
block in the 4GL interpreter.
This error message means the ar unit nesting and the block nesting do not
match - a block has ended, but there are no ar units left to close out. Progress is thus trying to end a non-existent subtransaction, but can't, so the database is brought down. On restarting the db should go through normal crash recovery.
So the error seems to indicate that 4gl interpreter has become confused about the state of block nesting levels and is trying to end a block when there isn't one.
This may be a result of ending some earlier block twice, or not starting
a new block when one should have. It does not appear to be dangerous for the database, but does probably indicate some sort of bug. In order to investigate more, a reproducible case would be required, but the behaviour presently seems to defy being reproduced at will.