On 5/2/2012 2:17 PM, Caldarale, Charles R wrote:
Both this symptom and your earlier one about creating a session after a 
response has been committed are representative of the kinds of errors seen when 
a webapp stores references in an inappropriate scope.  For example, keeping a 
reference to a request or response object in a static field, a session, or a 
thread-local, will often result in the wrong object being used later on.  This 
is especially evident under high-load situations...

  - Chuck

Thanks, Chuck. I know you are an expert here. That could be since it's very odd to have all of these different sorts of exceptions occurring on what should be standard JSP/servlet code, as if my request/response/session objects are messed up.

That being said, our "PageBean" class associated with our JSPs are all at the 'request' scope:

<jsp:useBean id="bean" scope="request" class="org.example.PlayerRegistration2Page" />

The PageBean holds a reference to the request, response and session objects, as defined in the JSP's java code, but we are passing in the standard objects our page should be getting from Tomcat:

bean.init(session,request,response);

I am pretty sure we never store the request/response objects in the session, static field or thread-local. So once a response is sent back, it seems that our PageBean class should fall out of scope as it was tied into the request scope.

We have implemented our own HttpSessionListener so we can track sessionCreated and sessionDestroyed events. So I am saving the session objects between the two events which we use to show "all active users" including the session start time and last accessed time (which is why we store the actual session object). We started 13,350 sessions during the test, with a max of 1800 concurrent sessions. But we don't seem to have trouble keeping track of them because now that the testing is done, we can see just the current user sessions listed (in this case, just two, both started recently), so all of those sessions eventually ended or expired and were then removed from our tracking list.

Is it possible that if we keep a handle on the session (though we remove that on sessionDestroyed) this prevents Tomcat from some sort of GC issue with respect to the sessions?

Your thoughts on this are much appreciated.

David


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to