Consultor Eletrônico



Kbase P57966: Memory leak causes WebSpeed performance and error 5408 in the server log file when not using "creat
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/2/2008
Status: Verified

SYMPTOM(s):

Memory leak causes WebSpeed performance and error 5408 in the server log file when not using "create widget-pool" statement in custom cgi-wrapper

WARNING: -l exceeded. Automatically increasing from <old value> to <new value>. (5408)

FACT(s) (Environment):

Performance degrades over time as agents are serving more requests
WebSpeed Agents run faster after restarting WebSpeed broker
Each new web request creates another ADMProps temporary table
Code being run is custom-built cgi-wrapper - not AppBuilder generated
Code uses the src/web2/wrap-cgi.i include file provided with development licenses
Issue does not occur when using the older wrapper (/src/web/method/wrap-cgi.i)
Progress 9.1x
WebSpeed 3.1x
OpenEdge 10.x
All Supported Operating Systems

CAUSE:

Dynamic temp-tables created by the code in scr/web2/web-cgi.i are not being deleted.

This happens because the include file works on the assumption that the procedure including it creates an unnamed widget pool.
This was not done, and as a result the dynamic temp-tables were not cleaned up at the end of the WebSpeed request.

Over time, this takes more and more memory and performance degrades as a result.

FIX:

Add "CREATE WIDGET-POOL" at the top of the cgi-wrapper program.

Alternatively, use the older wrapper /src/web/method/wrap-cgi.i which does not contain code relying on dynamic objects. This may need additional code changes to account for the version differences.