If there was something like RequestCycle.lockSession() RequestCycle.unlockSession()
where in my onClock handler I could call RequestCycle.get().unlockSession() --do-my-stuff-and-don't-touch-the-session! RequestCycle.get().lockSession() I know this adds responsibility to the developer, but this is only for corner cases. -Matej Matej Knopp wrote: > Sorry, i'm lost. How is overriding getlock() supposed to help me? I need > to lock the session, but not for the whole request. Just for a part > before the db call and the part after. > > -Matej > > Igor Vaynberg wrote: >> in that case we sort of already have a mechanism for that, request >> target has a getlock() which you can override and return something other >> then session, just need a way to encode a url so it is resolved to your >> own target >> >> -Igor >> >> >> >> >> On 6/21/06, *Matej Knopp* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> >> wrote: >> >> Well, it would be your responsibility not to touch application or >> session if the mutex is unlocked. This is not something an average joe >> would do in every link handler. You would do that only right before a >> long db operation and lock it right after it. >> >> I'm not looking for perfect solution. I'm looking for one that works. A >> solution when the application stops responding until session expires is >> not perfect either. >> >> -Matej >> >> Igor Vaynberg wrote: >> > but you wouldnt want to unlock the mutex, thats kinda the whole >> point! >> > what if both pages access session object? or application object? >> now you >> > have to start worrying about concurrency on those. the advantage of >> > letting only one page request through at a time is that users >> dont have >> > to think about concurrency, if we dont do that the programming model >> > becomes much more complicated. it has its draw backs for sure, but i >> > dont think there is a perfect solution here. >> > >> > -Igor >> > >> > >> > >> > On 6/21/06, *Matej Knopp* <[EMAIL PROTECTED] <mailto:[EMAIL >> PROTECTED]> >> <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote: >> > >> > Igor Vaynberg wrote: >> > > not unless all page targets return the same mutex instance :) >> > The mutex would be stored in session of course :) >> > > >> > > the point is that only a single page is processed at a time >> > because of >> > > pagemap, etc. although i dont really know if the pagemap is >> > affected all >> > > that much in 2.0. >> > > >> > > but even then, lets say i double click a link really fast, >> i get two >> > > different instances of pagetarget that are going to do >> processing >> > on the >> > > same page instance, so once again both of those page >> targets have to >> > > return the same mutex instance. dont know how we are going >> to do >> > that or >> > > if it will be simpler/better then locking session. >> > I don't think it would be simpler. But it would be better in >> a way that >> > if you have an action that takes very long, you can "unlock" >> the mutex >> > in you link handler, let other requests process, and after >> you are >> > done, >> > you lock the session again. >> > > >> > > the thing about the db locking up is that it should have some >> > sort of a >> > > timeout that throws an error, and the sync block should >> then be >> > broken. >> > > that doesnt happen? sounds like more of a fault in your app? >> > maybe we >> > > should build a timeout for our sync block. >> > Well, the db can either lock up, or it really takes that long >> to get the >> > data (complicated statistics, reports, etc). In the meanwhile >> user would >> > like to work with the rest of the application but he can't. >> > >> > -Matej >> > > >> > > -Igor >> > > >> > > >> > > On 6/21/06, *Matej Knopp* <[EMAIL PROTECTED] >> <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL >> PROTECTED]>> >> > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> wrote: >> > > >> > > Hi, >> > > >> > > we have a problem with session locking. Sometimes, the >> underlying >> > > database just hangs and the response is not processed >> > properly. The >> > > problem is that HttpSession remains locked. >> > > >> > > Wouldn't it be possible to replace the current locking >> mechanism >> > > ( synchronized(lock) { doEverything() } ) >> > > >> > > with something that would behave more like a mutex? >> > > >> > > e.g. >> > > >> > > Mutext mutex = getRequestTarget().getMutex(); >> > > >> > > mutex.lock(); >> > > processRequest(); >> > > mutex.unlock (); >> > > >> > > and the code running the operation could look like >> > > >> > > >> RequestCycle().get().getReqeustTarget().getMutex().unlock(); >> > > doMySloooowOperation(); >> > > >> RequestCycle().get().getReqeustTarget().getMutex().lock(); >> > > >> > > -Matej >> > > >> > > >> > > _______________________________________________ >> > > Wicket-develop mailing list >> > > Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> > <mailto:Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net>> >> > > <mailto: Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> > <mailto:Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net>>> >> > > >> https://lists.sourceforge.net/lists/listinfo/wicket-develop >> > < https://lists.sourceforge.net/lists/listinfo/wicket-develop> >> > > >> > > >> > > >> > > >> > >> ------------------------------------------------------------------------ >> >> > > >> > > _______________________________________________ >> > > Wicket-develop mailing list >> > > Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> > <mailto:Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net>> >> > > >> https://lists.sourceforge.net/lists/listinfo/wicket-develop >> <https://lists.sourceforge.net/lists/listinfo/wicket-develop> >> > >> > >> > >> > _______________________________________________ >> > Wicket-develop mailing list >> > Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> > <mailto:Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net>> >> > https://lists.sourceforge.net/lists/listinfo/wicket-develop >> <https://lists.sourceforge.net/lists/listinfo/wicket-develop> >> > <https://lists.sourceforge.net/lists/listinfo/wicket-develop> >> > >> > >> > >> > >> ------------------------------------------------------------------------ >> >> > >> > _______________________________________________ >> > Wicket-develop mailing list >> > Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> > https://lists.sourceforge.net/lists/listinfo/wicket-develop >> >> >> >> _______________________________________________ >> Wicket-develop mailing list >> Wicket-develop@lists.sourceforge.net >> <mailto:Wicket-develop@lists.sourceforge.net> >> https://lists.sourceforge.net/lists/listinfo/wicket-develop >> >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Wicket-develop mailing list >> Wicket-develop@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wicket-develop > > > > _______________________________________________ > Wicket-develop mailing list > Wicket-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-develop > _______________________________________________ Wicket-develop mailing list Wicket-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-develop