All,
one thing I forgot to mention is that MathCommentAuthenticator also
produces a session. We don't plan on using this and have switched to
DefaultCommentAuthenticator, but if anyone is trying to eliminate
session creation then it's important to also switch
CommentAuthenticators,
Rob
On 10/20/06, webmaster <[EMAIL PROTECTED]> wrote:
Nor I - although I really have not idea about the coding - the problem
is one that Cheblogs.com could really use being fixed!
Thanks everyone for a great software system!
I have been unable to keep cheblogs.com running for any reasonable
period (read more than a few minutes) of time this month, but I think I
finally have a working configuration in place now.
But, I had to move to 3Gigs of RAM and purchase 400 additional processes
on my server to get it working. So any reduction in memory usage gets my
full support!!!
Brian
Elias Torres wrote:
> Not me. :)
>
> Dave wrote:
>
>> Those all look like good and safe fixes to me.
>>
>> Anybody object to my making these changes in the trunk?
>>
>> - Dave
>>
>>
>> On 10/20/06, Robert Yates <[EMAIL PROTECTED]> wrote:
>>
>>> Hello,
>>>
>>> I work alongside Elias here at IBM.
>>>
>>> We have been recently experimenting with Roller under heavy loads and
>>> one of the first things we noticed was the fairly heavy memory usage.
>>> When we investigated this we found that there were lots of Sessions
>>> and RollerSessions on the heap even though our load was a read only
>>> load.
>>>
>>> I've gone through the code looking at the areas that create sessions,
>>> and found a few. I list these below and hope you'll consider these
>>> fairly minor changes as something that could be included in 3.1
>>>
>>> 1) CharEncodingFilter
>>>
>>> remove the following lines
>>>
>>> // Keep JSTL and Struts Locale's in sync
>>> // NOTE: The session here will get created if it is not
>>> present. This code was taken from its
>>> // earlier incarnation in RequestFilter, which also caused the
>>> session to be created.
>>> HttpSession session = ((HttpServletRequest) req).getSession();
>>> if (mLogger.isDebugEnabled()) mLogger.debug("Synchronizing
>>> JSTL and Struts locales");
>>> Locale locale = (Locale)
>>> session.getAttribute(Globals.LOCALE_KEY);
>>> if (locale == null)
>>> {
>>> locale = req.getLocale();
>>> }
>>> if (req.getParameter("locale") != null)
>>> {
>>> locale = new Locale(req.getParameter("locale"));
>>> }
>>> session.setAttribute(Globals.LOCALE_KEY, locale);
>>> Config.set(session, Config.FMT_LOCALE, locale);
>>>
>>> given that ?locale= is now deprecated, this code doesn't really do
>>> anything. If JSTL and Struts don't find the session attribute (and in
>>> JSTL's case attributes on the page or request) then they will default
>>> to the "req.getLocale()". So putting the value of req.getLocale()
>>> into the struts and JSTL session attributes is now redundant.
>>>
>>> 2) PageServlet, SearchServlet (and possibly PreviewServlet,
>>> PreviewServlet is not as important as there will already be a session
>>> for the logged in user).
>>>
>>> All these servlets make this call.
>>>
>>> PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
>>> this, request, response,"", true, 8192, true);
>>>
>>> The third to last variable indicates whether the session should be
>>> created and it is currently set to "true".
>>>
>>> Could we change the calls to
>>>
>>> PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(
>>> this, request, response,"", false, 8192, true);
>>>
>>> 3) Index.jsp
>>>
>>> Am not sure whether this is still a problem. I just pulled the latest
>>> build and I am not sure that it is still called. If it is still used
>>> then could we add the following "session" attribute to the page
>>> directive which will cause the session to not be created.
>>>
>>> <%@
>>> page import="org.apache.roller.config.RollerRuntimeConfig"
>>> session="false"%>
>>>
>>> Please let me know what you think,
>>>
>>> Thanks,
>>>
>>> Rob
>>>
>>>
>
>