Kbase P8015: Error 9456 occurs when running code
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  1/27/2009 |
|
Status: Verified
SYMPTOM(s):
Error 9456 occurs when running code
Limit of repeat/undo units per session reached. (9456)
** Save file named core for analysis by Progress Software Corporation. (439)
FACT(s) (Environment):
Progress 9.x
All Supported Operating Systems
CAUSE:
This is a known Progress limit. In Progress 9.x, the 4GL is limited to 2GB of ACCEPT/REJECT units per session. An ACCEPT/REJECT unit is a procedure or trigger, or a REPEAT block or FOR EACH block.
An ACCEPT/REJECT unit is the mechanism by which Progress keeps track of a client's transactions in the local before image file (.lbi). These units are similar to before image notes in their purpose, however these units are logged in a very different manner. Basically there is not a 1 to 1 relationship between ACCEPT/REJECT unit and transaction. Each subtransaction is logged in its own ACCEPT/REJECT unit, and there is no dependency on begin or end notes in the local before image file.
FIX:
Option #1
Upgrade to OpenEdge 10.x.
The 2GB limit of ACCEPT/REJECT units per session has been increased in 10.x by changing the data type of the variable that is used to increment the ACCEPT/REJECT count from an integer to a double.
Option #2
In Progress 9.x, it is possible to reduce the use of ACCEPT/REJECT units by changing any REPEAT.. type statements to DO WHILE TRUE.. since a DO with no TRANSACTION or UNDO keywords is not an ACCEPT/REJECT unit, where a REPEAT is.