Hi Richard,
>> As you may recall I have a NT "Turnstile" accepting residents entering a code for a meal.
Alas I don't recall the details. Are they using a browser interface? From a single terminal as they enter? or from different terminals like their phones?
>> The meal sitting is 2.5 hours, so I have made the timeout 2.5 hours, because at 15 minutes the app was timing out due to inactivity either at the start of the sitting or at the end.
This suggests a single terminal? Which suggests they're all sharing 1 session? and the users don't "log in" right, they just enter a code - like a PIN code or something to indicate "hey, I'm here, I'm having a meal".?
>> In your reply you suggest, I think, that all the sessionIDs are in memory on the server(?) until timeout, irrespective of whether the remote browser is open or closed.
I feel like there is either only 1 session (they're all using 1 terminal) or there are lots and lots of sessions - but each user only uses their session for a few seconds at the start of the meal. Perhaps you can clarify this.
Either way the ram usage by the sessions will be minimal. I mean, like, hardly measurable.
Let's say you have 1000 students, and each session uses 5K (which in itself is grossly excessive) that would still only be 5 megs of ram.
If you have a memory leak, then I'd suggest it has nothing to do with the sessions....
>> Can I force the deletion of the sessionID by using Notifydeletesession embed with the code self.deletesession
no. You could delete sessions in another way, but you are going down the wrong rabbit hole here.
>> but from what you have said, am I safe in assuming that if the app is running idle on the server, it will timeout eventually, ( in my case after 2.5 hours)
in your case 2.5 hours _after_ the last person has eaten.
>> and delete all sessionIDs and release any memory they may have been holding?
yes.
>> I am being challenged by a clients IT dept that the memory leak being experienced is due to my app
It's easy to see if an app overall is leaking memory. TaskManager measures memory usage, and while it's not terribly helpful at the micro level, it's useful over long periods of time to see if the memory consumed by a program is going up. For example your program starts with likely only a few megs of ram used, then grows during a meal session by say a few more megs. But probably lives under 100Megs all the time. If however it keeps going up, with each meal service then it is leaking.
There are so many ways for a program to leak, but generally it'll be your code (not sessions.) Are you, for example, storing any information in memory tables? Or (heaven forbid) global queues?
And what file driver (TPS? ODBC? etc) are you using? And what build of Clarion are you on?
Bruce