Consultor Eletrônico



Kbase P34356: Running a procedure persistently multiple times causes error 2894.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/15/2008
Status: Verified

FACT(s) (Environment):

Progress 9.1C
Progress 9.1D
UNIX

SYMPTOM(s):

Running a procedure persistently multiple times causes error 2894.

SYSTEM ERROR: Action segment of procedure <name> is not in execution buffer. (2894)

The program is run in batch mode

Increasing -mmax and -D to their limit does not help.

Stacktrace from _progress reads:

crdirRestore
crEstblshCntxt

CAUSE:

The procedure is being called persistently 65536 times without proper cleanup. This means that there will be 65536 instances of this procedure in memory, which causes Progress to reach an internal limit.

This can be verified by using the -yx client startup parameter which produces a file called proc.mon. This shows the amount of times the procedure has been called before the crash.

FIX:

Use the "DELETE PROCEDURE <proc-handle>" to remove the procedure from memory before calling it again.

Under normal circumstances you only call a procedure persistently once and then re-use it's internal procedures.