11.7.4 Linux Classic Appserver
We just recently switched from using state-reset to state-free. We are using the session:current-request-info:ClientContextID object in our activation procedure, on a classic statefree appserver, as a key to our context store. The assignment in the activation procedure is:
cClientContextID = SESSION:CURRENT-REQUEST-INFO:ClientContextID.
No other references to it are made and there is not a local handle variable for it.
In development environment, we have a procedure that checks for any objects left in memory; it is called from the agents shutdown event procedure. When agents get shutdown, the report for each agent show many Progress.Lang.OERequestInfo objects in memory.
It looks to me like it is a memory leak, but I'm not sure if the Abl GC cleans them up periodically and the ones left in memory just haven't been cleaned up before the agent shuts down.
I might look at this from the transaction standpoint. If you've got an open transaction (say in a persistent procedure) objects don't get cleaned up.
Use 4gltrans logging to verify that there are no open-ended transactions.