[prev in list] [next in list] [prev in thread] [next in thread] 

List:       myfaces-user
Subject:    Re: CODI: Exclude windowId from certain pages
From:       Leonardo Uribe <lu4242 () gmail ! com>
Date:       2012-11-30 16:01:06
Message-ID: CABujnVcFwHSq=+OqXRTC8CFTz6B1S9+4PYirjTcqUb8+G0bmkA () mail ! gmail ! com
[Download RAW message or body]

Hi

2012/11/30 Mark Struberg <struberg@yahoo.de>:
> 
> 
> Well, then the problem is not the number of windows but the number of sessions ;)
> 

Ok, good to know that.

> In pure tomcat you can either restrict that or 'offload' them via a configuration. \
> There are SessionManagers which keep n Sessions in memory and if this number gets \
> exceeded the LRU ones will get persisted to the file system. That way it's almost \
> impossible to trash the Sessions in pure tomcat. 
> I have no clue what GlassFish does to prevent this scenario, but this is for sure \
> not a MyFaces, nor a CDI, nor a CODI problem ;) 

Yes, I agree with you that is not a problem in MyFaces Core or CODI.

But I have an "academic" doubt about CDI (in this case Weld). In theory,
to enable session failover with Openwebbeans you have to add a file in
src/main/resources called META-INF/openwebbeans/openwebbeans.properties
and put a filter, so when the session is restored from the filesystem,
it will be done correctly, and when the session is persisted, the window
contexts in memory are released.

    <filter>
        <filter-name>OpenWebBeansFailover</filter-name>
        <filter-class>org.apache.webbeans.web.failover.FailOverFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>OpenWebBeansFailover</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>

This works just perfect, but does Weld requires something similar? Sorry, if
this question is trivial, obvious or off the topic.

regards,

Leonardo Uribe

> LieGrue,
> strub
> 
> 
> 
> 
> 
> > ________________________________
> > From: Andreas Kaiser <kaiser.andreas@gmail.com>
> > To: MyFaces Discussion <users@myfaces.apache.org>
> > Sent: Friday, November 30, 2012 10:24 AM
> > Subject: Re: CODI: Exclude windowId from certain pages
> > 
> > Hi
> > 
> > thanks for all answers. I will try to reduce the number of windows per
> > session.
> > 
> > Also i will try to change my stress test script to be a bit more gently to
> > my server ( clean login and logout )
> > 
> > BTW. the number of ids is not 500*64 its NumberOfThreadsInJMeter *
> > LoopCount
> > 
> > in my case 500 * 200 = 100000 ( * bytesPerHashMapEntry )
> > 
> > The windows per session limitation will not work in this scenario because
> > each request gets a new session
> > 
> > Regards
> > 
> > 
> > On Fri, Nov 30, 2012 at 8:26 AM, Leonardo Uribe <lu4242@gmail.com> wrote:
> > 
> > > Anyway, you can only solve the question trying to reduce the param and see
> > > what happens. 500*64 is a big number.
> > > On Nov 30, 2012 2:20 AM, "Mark Struberg" <struberg@yahoo.de> wrote:
> > > 
> > > > No Leo, cannot be a problem!
> > > > 
> > > > As Gerhard already explained we only keep a configurable number of
> > > > 'windows' per Session. Once this limit is exceeded the LRU one will get
> > > > destroyed. It's really a non-issue. The problem Andreas faces must be
> > > > another one. Or it's a bug, but this is really well tested imo.
> > > > 
> > > > LieGrue,
> > > > strub
> > > > 
> > > > 
> > > > 
> > > > 
> > > > ----- Original Message -----
> > > > > From: Leonardo Uribe <lu4242@gmail.com>
> > > > > To: MyFaces Discussion <users@myfaces.apache.org>
> > > > > Cc:
> > > > > Sent: Friday, November 30, 2012 5:47 AM
> > > > > Subject: Re: CODI: Exclude windowId from certain pages
> > > > > 
> > > > > Hi
> > > > > 
> > > > > Are you invalidating the session (logout) in some point? Maybe that
> > > > could be
> > > > > related to the problem, because if you keep the session active and
> > > create
> > > > > hundreds of different windows, since the session is not released that
> > > > memory
> > > > > will not be restored and the stress testing will not be accurate (or
> > > > realistic).
> > > > > 
> > > > > regards,
> > > > > 
> > > > > Leonardo Uribe
> > > > > 
> > > > > 2012/11/29 Gerhard Petracek <gerhard.petracek@gmail.com>:
> > > > > > hi andreas,
> > > > > > 
> > > > > > please have a look at WindowContextConfig - see e.g.
> > > > > > #isUnknownWindowIdsAllowed and #getMaxWindowContextCount
> > > > > > -> it shouldn't be an issue (since you can customize the default
> > > > > behaviour).
> > > > > > 
> > > > > > btw:
> > > > > > we are doing a lot of such tests (without
> > > > windowId=automatedEntryPoint) and
> > > > > > never saw an issue - but we don't use glassfish ;)
> > > > > > 
> > > > > > regards,
> > > > > > gerhard
> > > > > > 
> > > > > > http://www.irian.at
> > > > > > 
> > > > > > Your JSF/JavaEE powerhouse -
> > > > > > JavaEE Consulting, Development and
> > > > > > Courses in English and German
> > > > > > 
> > > > > > Professional Support for Apache MyFaces
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 2012/11/29 Andreas Kaiser <kaiser.andreas@gmail.com>
> > > > > > 
> > > > > > > Hi
> > > > > > > thanks for the answer
> > > > > > > 
> > > > > > > I will have a look at this.
> > > > > > > BTW. it seems that the the windowId is a potential security issue.
> > > > > > > 
> > > > > > > For instance call a side with an unknown windowId. CODI will
> > > generate
> > > > a
> > > > > new
> > > > > > > valid one. Just change the generated one to a new invalid id. CODI
> > > > will
> > > > > > > generate a new one again. Repeat this until you are out of ids or
> > > the
> > > > > > > server is out of memory ;-)
> > > > > > > 
> > > > > > > This is whats happend in my application due to stress testing
> > > > > > > 
> > > > > > > Regards
> > > > > > > 
> > > > > > > 
> > > > > > > On Thu, Nov 29, 2012 at 11:03 PM, Gerhard Petracek <
> > > > > > > gerhard.petracek@gmail.com> wrote:
> > > > > > > 
> > > > > > > > hi andreas,
> > > > > > > > 
> > > > > > > > first of all: welcome @ myfaces!
> > > > > > > > 
> > > > > > > > there are different approaches - e.g. you can use urls with
> > > > > > > > windowId=automatedEntryPoint
> > > > > > > > (see the javadoc in WindowContextManager)
> > > > > > > > 
> > > > > > > > regards,
> > > > > > > > gerhard
> > > > > > > > 
> > > > > > > > http://www.irian.at
> > > > > > > > 
> > > > > > > > Your JSF/JavaEE powerhouse -
> > > > > > > > JavaEE Consulting, Development and
> > > > > > > > Courses in English and German
> > > > > > > > 
> > > > > > > > Professional Support for Apache MyFaces
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 2012/11/29 Andreas Kaiser <kaiser.andreas@gmail.com>
> > > > > > > > 
> > > > > > > > > Hi everybody
> > > > > > > > > 
> > > > > > > > > I have following setup :
> > > > > > > > > 
> > > > > > > > > Glassfish 3.1.2.2
> > > > > > > > > Weld
> > > > > > > > > Java EE6 + JSF + CDI + JPA
> > > > > > > > > CODI: 1.0.5
> > > > > > > > > 
> > > > > > > > > My problem:
> > > > > > > > > 
> > > > > > > > > We use and like the windowId Feature from CODI. But it causes
> > > > > some big
> > > > > > > > > problems on some pages which are specially created for stress
> > > > > testing.
> > > > > > > > > 
> > > > > > > > > These pages are accessed from 500+ clients generated from
> > > > > JMeter.
> > > > > > > > > Every client acts as a own browser.
> > > > > > > > > 
> > > > > > > > > This pages (RequestScoped) can be accessed without login.
> > > > > Therefore
> > > > > > > CODI
> > > > > > > > > generates a new windowId for every client.
> > > > > > > > > 
> > > > > > > > > The problem is that the JMeter tests run multiple times. Due
> > > > > to this
> > > > > > > the
> > > > > > > > > Hashmap in JSFWindowContext.java consums a lot of memory
> > > > > until the
> > > > > > > > > Glassfish has no space left which leads into a 100 % CPU
> > > > > usage because
> > > > > > > > the
> > > > > > > > > garbage collector tries to free a even the last few bytes.
> > > > > > > > > 
> > > > > > > > > My question is
> > > > > > > > > 1. Is it possible to create windowIds only a user is logged
> > > > > in
> > > > > > > > > 2. Is there an option to change the default behavior
> > > > > > > > > 3. Can i exclude some pages being handled by the codi
> > > > > JSFWindowManager
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > Regards
> > > > > > > > > 
> > > > > > > > 
> > > > > > > 
> > > > > 
> > > > 
> > > 
> > 
> > 
> > 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic