hi mark,

we already cleanup expired and empty window context instances - just use the
version of the current trunk.
the only case we currently don't support: an user works with x windows and
s/he just leaves the app. without a logout.
in this case the cleanup will happen as soon as the session expires.

regards,
gerhard

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2010/8/7 Mark Struberg <[email protected]>

> Hi!
>
> One of the main problem with large (huge) web applications is the session
> footprint.
>
> While it is nice to have support for multiple browser tabs or windows, it
> is
> otoh pretty memory consuming, because WebApps must maintain their own
> 'SubSession'. With CODI we provide this for our @WindowScoped,
> @ViewAccessScoped
> and @ConversationScoped beans.
>
> But even if a page/tab only got opened once and then got closed again very
> quickly, we currently still store the WindowContext for this page for as
> long as
> 60 minutes.
>
>
> So what about adding a small JavaScript which periodically (e.g. all 60
> seconds)
> 'ping' some Servlet or anything else with an AJAX request and increments a
> counter in it's WindowContext? Each normal bean access will reset this
> counter
> to 0 within the EditableWindowContext#touch(); If the counter reaches 60,
> we can
> easily cleanup the WindowContext.
>
> With this little trick we can lower down the standard timeout for
> WindowContexts
> to a much lower value, e.g. 3 minutes. If there is any window for that
> context
> still open, then we will get the 'ping' which resets the timeout.
> The only impact I can think of is if you need to leave the current webapp,
> do
> some work in another one and come back later. This might be solved by
> storing
> some information in a cookie and providing an 'openWindowStore' via
> memcached or
> any othe cluster mechanism. Or open the target page in a single big
> iframe...
> ideas please ;)
>
> wdyt?
>
> LieGrue,
> strub
>
>
>
>
>

Reply via email to