Dan,
Just a wild suggestion; you can try:
 
RECALC VAR nexthtml
 
Instead of 
 
Recalc Variables
 
With this syntax, you restrict calculations to one variable only. Also, you
can try adding a component ID to your variable and try:
 
PROPERTY <Component ID> TEXTVALUE 'value'
 
Javier,
 
Javier Valencia, PE
913-829-0888 Office
913-915-3137 Cell
913-649-2904 Fax
 
  _____  

From: [email protected] [mailto:[email protected]] On Behalf Of Dan
Sent: Thursday, February 18, 2010 5:53 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Memory Usage out of hand
 
Bob,  
  I have brought this down to as basic as I can get it now... one form only.

A:  A start eep 
   
    SET V vnexthtml = " <http://www.vredevoogd.com/dan--mapall.html>
www.vredevoogd.com/dan--mapall.html"
    edit using nextelshuttle
    return

B:  The form nextelshuttle has only ONE object, the web object that the
variable vnexthtml
    The form also has the timer eep set to 1 minutes and the eep is:

    Recalc Variables
    Return


It is stripped down to that... No other coding, no other variables,  this
should be very easily replicated at this point.  As long as the form runs,
it increase in memory usage and in very short order has bogged the machine
down.



At 05:54 PM 2/17/2010, you wrote:



Dan,

 I concur. As my previous email stated, I do not believe it has anything to
do with

the web control, but the timer process itself.   I have not had time to test
as you, but

will try to do so in the next few days. (Unless you come up with something
first!)

 

Some clarification first....

Do you do "edit using formname      "

and then that form has a timer that simply does your vcount

and recalc variables or does the timer eep call another form 

itself.   I was not quite clear on your sample below.

 

In my case I have Form A  that has a timer eep that calls 

Form B (which does some processing) and then closes 

back to Form A.   In my case, Form B never appears on the

screen it is simply a " back ground process."

 

I will report back any findings.

 

Thanks-

Bob





----- Original Message -----
From: "Dan" <[email protected]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Wednesday, February 17, 2010 4:15:09 PM GMT -06:00 US/Canada Central
Subject: [RBASE-L] - Re: Memory Usage out of hand





Ok, I did some more testing. I turned off all processing  and just let the
form run  and refresh the web page over and over and over...  No increase in
memory at all... so the memory loss has to be in my coding.

Then I did that again with a 'recalc variables' in the eep.... Boom  Memory
issue 


Eep calls the form... timer eep has...

set v vcount = (.vcount + 1)
pause 3 using .vcount

RECALC VARIABLES

 return

every round adds 500k

So No Rbase processing going on... no while loops etc...   Timer, web page,
refresh.

Open the form manually, it goes up

Close the form just back to the R:Prompt  Memory not released

Re-open the form  Memory goes up.

close it back to prompt... stays up.


Next Idea?




Yes, Temp tables are created
files imported,
lots of processing done,
files renamed
files ftp'd to an off site source
While loops 

are all part of the code that was running every 15 minutes.

If I call the form manually, the memory is not released until the R:base
session is closed.   

This code has been running unchanged 4 about 3 years or so.  Not sure why
just in the last three months it has become an issue.  

I am now running a sample of my code without the form, and putting it
through a timed loop to see if it in fact is the culprit.  If so, it might
be just as easy as run them separate.  I could easily close and open a
second R:base on a timer and leave the web form open all day with no memory
issue.  Will do some thorough testing.

Thanks everyone for your help.  I will post my results.  

Dan



1. If you call the form manually, does memory increase when it is running
and release when you exit the form?
 
2. Are you using a while loop, or my goto code in your eep?
 
Dennis
 
  _____  

From: [email protected] [  <mailto:[email protected]>
mailto:[email protected]] On Behalf Of Dan
Sent: Wednesday, February 17, 2010 12:41 PM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Memory Usage out of hand
 
Dennis you are right with my first test.
Originally I would just refresh the web content...  Memory usage increased
Then I tried a closewindow, start new form...  Had that in a wrong spot, and
opened more and more forms. (my bad)   Memory usage increased
Now the start eep that calls the form originally is set up like you are
suggesting... completely closing the form on each iteration of the loop.
Memory usage increases.
I am guessing the ONLY way to get the memory to reset is to close R:Base.
If that isn't the case, that would be best for me as I don't know how to
open an instance of R:base to a particular  monitor.  
Without fixing this, This application uses up memory so fast that twice a
day things fail.  Have to manually start and stop it.  Not good for an
automated process.



At 01:28 PM 2/17/2010, you wrote:
Dan,
 
I think your problem is nextelshuttle never completely goes away because it
is calling another copy of itself.
You should never have code that calls another form after closing the form.
The fact that the memory is released when you completely exit your routine
is a hint.
 
Instead,  set up a loop which calls nextelshuttle.  
The nextelshuttle timer should just closewindow after 15 minutes.
No other code should be rum after closewindow.
 
This way, nextelshuttle will completely close and release memory before
being called again.
You will need some way of setting vQuit to YESat the end of the day or when
a button is pressed on nextelshuttle
 
Label Loop
set up some vars...
set var vQuit = NO
edit using nextelshuttle
if vQuit = YESthen
   goto Endloop
else
  goto Loop
endif
Label EndLoop
 
 
Dennis McGrath
 
  _____  

From: [email protected] [ mailto:[email protected]] On Behalf Of Dan
Sent: Wednesday, February 17, 2010 11:59 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Memory Usage out of hand
 
Ok,
  I made your suggestion work, and closewindow is working now, but I think I
need to actually close R:Base to free up the memory?  (Memory usage goes up
by 50,000 k every loop)  So, if that is the case,
how do I have R:base open to a particular screen (I run a 4 screen setup
here and the app I am working on has to be on the upper right, or Monitor 3)
At 11:30 AM 2/17/2010, you wrote:
Ok,


Yes, Rbase Dat calls up the form:
set up some vars...
edit using nextelshuttle
exit
Nextelshuttle form timer does the 15 minutes, and calls an internal eep
That eep, 
does :
Closewindow
run nextelshuttle.dan
return



The nextelshuttle.dan
does lots of database stuff, and then
edit using nextelshuttle



The closewindow does not close the window, but a second form is generated
(and third and so on for each loop)
If you close the latest loop, all forms close.
No memory is released till all forms close.
What am I missing?
Dan



At 11:00 AM 2/17/2010, you wrote:
Somewhere you have a program that calls up your form, maybe RBase.dat
or something else.  Do the following (or something like it depending on how
your
system works):
your program:
LABEL formagain
SET VAR vExit TEXT = NULL
EDIT USING nextelshuttle
IF vExit = 'yes' THEN
  EXIT
  RETURN
ELSE
  GOTO formagain
ENDIF
RETURN
In your Nextelshuttle form:
You would have a button to exit the form totally; that form's eep code would
be:
  SET VAR vExit = 'yes'
  CLOSEWINDOW
  RETURN
And somewhere there's code that does the 15 minute timer.  In that code when
you've reached the 15 minutes, the eep code would just have:
  CLOSEWINDOW
  RETURN
or you can use the pre-defined "exit" action.
Important:  you need the "return" even if you just have closewindow on
there.
Karen



So, now that we have surmised that my memory issue is the use of 
IE,   I am trying to find a way to have the program close and reopen 
the form  each loop through.
Closewindow doesn't seem to be my answer.  Anyone have any good ideas?
Problem:
I run an instance of R:base that opens just one form 'edit using
nextelshuttle'
The form has two objects, a clock and a web object that displays a 
city map with all our technicians on it.
that form has a 6 minute timer to run an eep that refreshes data, 
imports info to the database, after the eep, the web refreshes. (this 
is where the memory loss is)
I was hoping a closewindow would work, but I cannot make it close the 
form and restart a new form.  I suspect though that I would need to 
close that whole instance of R:base to free up the memory.
Thoughts?

Reply via email to