Consultor Eletrônico



Kbase P4291: NO-UNDO - Variables and Workfiles
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/12/2002
Solution ID: P4291

GOAL:

NO-UNDO - Variables and Workfiles

FIX:

For each procedure, PROGRESS creates two record buffers in the local buffer pool to hold all variables declared in that procedure:

- One buffer holds all variables defined as UNDO (PROGRESS default)
- One buffer holds all variables defined as NO-UNDO.

Like all PROGRESS record buffers, these buffers are limited to 32K each. This means that you can have up to 64K of variables in a procedure: 32K of UNDO variables and 32K of NO-UNDO variables.

You should define variables as NO-UNDO whenever possible. Variables defined as NO-UNDO do not have to be written to the local before image (LBI) file.

NOTE: On page 8-42 of the Programming Handbook it states "the first time a variable is altered within a subtransaction block, ALL of the variables in the procedure are written to the LBI file as a record. This is NOT TRUE for variables defined as NO-UNDO. NO-UNDO variables will NOT be written to the LBI file. All the UNDO variables are the variables that will get written to the LBI file as a record. The overhead of sending all of the UNDO variables in the transaction to the LBI file is much lower than sending just the specific undo variable that was changed. This avoids the overhead of PROGRESS having to keep track of all the changes made to the undo variables.

Workfile records,variables and data records are held in memory which is allocated for each client user with the -l Local Buffer Size startup option.

Workfiles occupy space in the local record buffer. Work files are to database files what variables are to database fields. Like a variable a work file is a temporary file that is stored in memory rather than in the database and can either be local to a single procedure or shared between procedures.

If a Workfile is defined as NO-UNDO all activity occurring during the workfile will not be written to the LBI file.