Consultor Eletrônico



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.