Kbase P26341: WebSpeed agent are leaking memory when using programs developed using Progress templates version 9.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  27/10/2006 |
|
Status: Unverified
FACT(s) (Environment):
Progress 9.1x
SYMPTOM(s):
Memory Leak in the WebSpeed agents
Programs developed using Progress templates version 9.1C or lower
CAUSE:
Bug# 20011203-017
CAUSE:
Progress templates are missing a "CREATE WIDGET-POOL." statement cause dynamic objects being created in the widget pool but not being released after the program finishes resulting in the continuous increment in memory.
FIX:
Upgrade to 9.1D or later. Note that this issue can still happen when executing any version of Progress WebSpeed Agent 9.1D or later, if the development of the programs happened using 9.1C or earlier version. So, it is required to get into each program and add a "CREATE WIDGET-POOL." line to the beginning of it.
Alternatively in 9.1C/3.1C, The following steps can be used to customize the WebSpeed dispatcher and be used a workaround.
Note that this fix should be used only if the application design is completely stateless.
1. Open the %DLC%\src\web\objects\web-disp.p file using the progress procedure
editor.
2. Find the following commented line in that file:
/* Try to run the Web object application program. */
The section of the web-disp.p will look like the following:
IF NOT debugging-enabled AND AppProgram BEGINS "src/web/":U THEN
RUN HtmlError IN web-utilities-hdl
(SUBSTITUTE ("Unable to run Web object '&1'", AppProgram )).
ELSE
/* Try to run the Web object application program. */
RUN run-web-object IN web-utilities-hdl (AppProgram).
/* If any debugging options are set except "top" ... */
IF debugging-enabled AND debug-options <> "" AND
3. Copy the following code and replace with the code in step # 2.
ELSE DO:
/* Try to run the Web object application program. */
CREATE WIDGET-POOL.
RUN run-web-object IN web-utilities-hdl (AppProgram).
DELETE WIDGET-POOL.
END.
4. Save it and recompile to create the debug-disp.r file.
5. Move the debug-disp.r file to %DLC%\tty\web directory.
6. Go to agent startup parameter in the broker properties and change the value of -p parameter from web\objects\web-disp.p to web\objects\debug-disp.p.
7. Restart the broker to apply those changes.
In 9.1D/3.1D, Use the following steps to customize the WebSpeed dispatcher.
Note that this fix should be used only if the application design is completely stateless.
1. Open the %DLC%\src\web\objects\web-disp.p file using the progress procedure
editor.
2. Find the following commented line in that file:
/* Try to run the Web object application program. */
The section of the web-disp.p will look like the following:
/* Try to run whatever was specified in the URL */
ELSE DO:
/* If debugging is disabled, don't allow running any files starting
with the path "src/web/". */
IF NOT debugging-enabled AND AppProgram BEGINS "src/web/":U THEN
RUN HtmlError IN web-utilities-hdl
(SUBSTITUTE ("Unable to run Web object '&1'", AppProgram )).
ELSE
/* Try to run the Web object application program. */
RUN run-web-object IN web-utilities-hdl (AppProgram).
/* If any debugging options are set except "top" ... */
IF debugging-enabled AND debug-options <> "" AND
LOOKUP("top":U,debug-options) = 0 THEN
RUN web/support/printval.p (debug-options).
END.
3. Copy the following code and replace with the code in step # 2.
ELSE DO:
/* If debugging is disabled, don't allow running any files starting
with the path "src/web/". */
IF NOT debugging-enabled AND AppProgram BEGINS "src/web/":U THEN
&nb.sp; RUN HtmlError IN web-utilities-hdl
(SUBSTITUTE ("Unable to run Web object '&1'", AppProgram )).
ELSE
/* Try to run the Web object application program. */
CREATE WIDGET-POOL.
RUN run-web-object IN web-utilities-hdl (AppProgram).
DELETE WIDGET-POOL.
/* If any debugging options are set except "top" ... */
IF debugging-enabled AND debug-options <> "" AND
LOOKUP("top":U,debug-options) = 0 THEN
RUN web/support/printval.p (debug-options).
END.
4. Save it and recompile to create the debug-disp.r file.
5. Move the debug-disp.r file to %DLC%\tty\web directory.
6. Go to agent startup parameter in the broker properties and change the value of -p parameter from web\objects\web-disp.p to web\objects\debug-disp.p.
7. Restart the broker to apply those changes..