Thanks! Do you want to contribute an improvement? For example we can extract a class that will be listener. In its onXyz() callbacks it will use the pageId to lookup the page, then it will search for an AtmosphereBehavior in the page to do its job (if this is required).
Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Tue, Aug 11, 2015 at 1:20 PM, Daniel Stoch <[email protected]> wrote: > Hi, > > AtmosphereBehavior extends AbstractAjaxBehavior which has a component > field - so this holds a reference to a component, so also to its page > (using parent relationships). AtmosphereBehavior in onRequest() method > registers itself as a listener to Meteor object: > > ... > Meteor meteor = Meteor.build(request.getContainerRequest()); > // Add us to the listener list. > meteor.addListener(this); > ... > > So until atmosphere resource hold in meteor expires, it keeps a hard > reference to our behavior so also to a page. It can be a problem in > heavy load applications (with many users), where many atmosphere > resources are created. > > -- > Daniel > > On Mon, Aug 10, 2015 at 1:38 PM, Martin Grigorov <[email protected]> > wrote: > > Hi, > > > > Can you point in the code where this happens? > > > > Martin Grigorov > > Wicket Training and Consulting > > https://twitter.com/mtgrigorov > > > > On Mon, Aug 10, 2015 at 11:34 AM, Daniel Stoch <[email protected]> > > wrote: > > > >> Hi, > >> > >> Ok, EventBus stores only pageId. But Atmosphere framework keeps all > >> AtmosphereResourceEventListeners which are implemented by > >> AtmosphereBehavior - so I think this is a place when Atmosphere keeps > >> references to all registered pages. > >> > >> -- > >> Daniel > >> > >> > >> On Tue, Jul 28, 2015 at 9:33 AM, Martin Grigorov <[email protected]> > >> wrote: > >> > Hi, > >> > > >> > I see no problem here. > >> > Wicket-Atmosphere keeps the pageId, not the page: > >> > > >> > https://github.com/apache/wicket/blob/3eba671c0770b0167f2d83ebf8924b28917316c9/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/EventBus.java#L253 > >> > > >> > Later uses it at > >> > > >> > https://github.com/apache/wicket/blob/3eba671c0770b0167f2d83ebf8924b28917316c9/wicket-experimental/wicket-atmosphere/src/main/java/org/apache/wicket/atmosphere/AtmosphereRequestHandler.java#L76 > >> > > >> > Martin Grigorov > >> > Freelancer. Available for hire! > >> > Wicket Training and Consulting > >> > https://twitter.com/mtgrigorov > >> > > >> > On Mon, Jul 20, 2015 at 1:54 PM, Daniel Stoch <[email protected] > > > >> > wrote: > >> > > >> >> Hi, > >> >> > >> >> In Wicket (AFAIK) we keeps only actual page reference in a web > >> >> session, all other pages as serialized to a page store. > >> >> AtmosphereBehavior registers itself as a listener to > >> >> AtmosphereResource object. Because of this Atmosphere keeps > references > >> >> to all registered pages (until such resource expires). I think it > >> >> could be a problem in high load applications: theses hard references > >> >> could eat all memory. > >> >> > >> >> What do you think: is it a problem or not (and I am wrong in this > case)? > >> >> > >> >> -- > >> >> Best regards, > >> >> Daniel > >> >> > >> >> --------------------------------------------------------------------- > >> >> To unsubscribe, e-mail: [email protected] > >> >> For additional commands, e-mail: [email protected] > >> >> > >> >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
