Kbase P74713: After closing a smartWindow, some .p files are still in memory.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  02/04/2004 |
|
Status: Unverified
SYMPTOM(s):
After closing a smartWindow, some .p files are still in memory.
For example:
adm2/containr.p
adm2/visual.p
adm2/smart.p
adm2/query.p
adm2/queryext.p
CAUSE:
Expected behavior.
FIX:
When you start an ADM2 application Progress loads in the memory stack the procedure that the application needs. If the procedure needed is already in memory, Progress doesn't load again the procedure. Therefore there may be more application using the same procedure in the stack.
When you close a smartWindow, Progress keeps the ADM2 super procedure still in the memory because it could not know whether there are other containers using these.
This approach also ensures that when you start again the same procedure (or another ADM2 one) the start-up is faster because there is no need to load the procedure in the memory.
You can off course delete manually the procedures from the memory if you are sure that there is no ADM2 application currently using these. In order to do that you may use a code like that
DEFINE VARIABLE hProc AS HANDLE NO-UNDO.
DEFINE VARIABLE hNext AS HANDLE NO-UNDO.
DEFINE VARIABLE cProceduresToKill AS CHARACTER NO-UNDO.
cProceduresToKill=
"adm2/smart.p,adm2/visual.p,adm2/containr.p,adm2/appserver.p,adm2/query.p,
,adm2/queryext.p,adm2/data.p,adm2/dataext.p,adm2/dataextcols.p, ,adm2/dynbrowser.w,adm2/datavis.p,adm2/browser.p,adm2/dynfilter.w,adm2/filter.p".
hProc = SESSION:FIRST-PROCEDURE.
REPEAT WHILE VALID-HANDLE(hproc):
/*we save the handle of the next procedure
before removing it from the memory */
hNext = hProc:NEXT-SIBLING.
IF CAN-DO(cProceduresToKill, hProc:FILE-NAME) THEN
DELETE PROCEDURE hproc.
hProc = hNext.
END.