Dan,
I don't know if this will work, but it is likely to be successfult.
The solution Dennis provided DOES make the selected page appear in the browser.

Many web developers use a random number passed as an argument to the page selection to force a new page being issued by the sender rather than the page that is cached on your local machine.

I know you can change your internet settings to always get a new page each time, but I find this a bit dodgy when I am debugging ASP and HTML in my local environment, as I have to keep manually deleting the cache on my local machine when source code is changed on a page.

Having said all that, try an integer counter set to 0 when the form loads and increment it by 1 with each timed

PROPERTY URLControl GOURL 'www.vredevoogd.com/dan--mapall.html'

except do this in the Form onBeforeStart.

set var vCounter integer = 0
set var vCountTXT TEXT = ''
set var vURLCmd TEXT = ""

Then in the TimerEEP do this.

set var vCounter = (.vCounter + 1)
set var vCounterTXT = (CTXT(.vCounter))

set var vURLCmd = ('PROPERTY URLControl GOURL' & '''www.vredevoogd.com/dan--mapall.html?INC=' + .vCounterTXT + '''')

&vURLCmd


The Why? of this is the only way the page can deal with the QueryString is to have it processed by the original page on the remote server. The incrementing is to prevent the same request you just sent previous from coming from your local cache.






----- Original Message ----- From: "Dan" <[email protected]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Thursday, February 18, 2010 10:56 AM
Subject: [RBASE-L] - Re: Memory Usage out of hand


Did I understand correctly?
1. remove the recalc variables
2. set the url object to have a component ID  (I set it as URLControl)
3. in the timer eep use:
 PROPERTY URLControl GOURL 'www.vredevoogd.com/dan--mapall.html'

If this is the case, no errors generated, no increase in memory,
however no update to the web page at the time of the eep firing.




At 09:35 AM 2/18/2010, you wrote:
Try PROPERTY <Component ID> GOURL 'value'

Dennis McGrath


----------
From: [email protected] [mailto:[email protected]] On Behalf Of Dan
Sent: Thursday, February 18, 2010 5:44 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Memory Usage out of hand

Dennis,
 At the moment the ONLY thing on the test form is the web browser.,
and the only variable to recalc is the value of the web page (as
far as I know this is what causes the refresh on the web page)
  The web page changes every few minutes by the code that I took
out of this application and run separately on another instance of
R:base.  If there is a better way to refresh the web page than
recalc variables, I am open to trying it.

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

Dan,

Sounds like you are onto something.
Can you avoid using recalc variables?

There are other ways to get data to display without resorting to that.
You can do your calculations in code and use property commands to
update the form controls.

But, before you do that, look carefully at your form
expressions.  Are the data types what your expect?
How many variable controls do you have on the form?
You might try making a copy of your form and start hacking variables
and control out until you find the culprit.

Dennis


----------
From: [email protected] [ mailto:[email protected]] On Behalf Of Dan
Sent: Wednesday, February 17, 2010 4:15 PM
To: RBASE-L Mailing List
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]] 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