Yep, just read through your discussion: http://www.nabble.com/forum/ViewPost.jtp?post=19547763&framed=y&skin=302
and that would be the intelligent way of doing it :) I'll code symbol provider when I have time. Hopefully these providers can be included in T5 distribution, as these are highly reusable and add only little to none "weight" to the distribution. - 99 Ulrich Stärk wrote: > > Why not instantiate a ServletContextSymbolProvider (the ServletContext is > available from the > ApplicationGlobals service) and contribute it to the SymbolProvider before > ApplicationDefaults and > FactoryDefaults. That way you can directly override > tapestry.page-pool.hard-limit and automatically > have all other init parameters as symbols, too. > > Uli > > 9902468 schrieb: >> I always keep nabble open when I'm at work :) >> >> These parameters can be transferred to web.xml, so that recompile is not >> needed when changing these parameters: >> >> public static void >> contributeApplicationDefaults(MappedConfiguration<String, >> String> configuration, ApplicationGlobals globals) { >> >> configuration.add("tapestry.page-pool.hard-limit", >> globals.getServletContext().getInitParameter("page_hard_limit")); >> >> } >> >> and in web.xml >> >> <web-app> >> <display-name>Some Tapestry 5 Application</display-name> >> <context-param> >> <!-- The only significant configuration for Tapestry 5, this >> informs >> Tapestry of where to look for pages, components and mixins. --> >> <param-name>tapestry.app-package</param-name> >> <param-value>fi.hanken.resbuilder.tapestry5</param-value> >> </context-param> >> <context-param> >> <param-name>page_hard_limit</param-name> >> <param-value>60</param-value> >> </context-param> >> >> This can be used through out every single service and page and component. >> To >> access this in a page or component use: >> >> @Property @Inject @Value("${page_hard_limit}") >> private String pageHardLimit; >> >> Injection can be used in service constructor also (I think) or by using >> buildSomeService method instead of the usual binder.bind >> >> Of course T5 makes it easy to read these from a file or database or from >> what not, but I have noticed that many admins accept editing web.xml and >> restarting the app ok. >> >> Hopefully this helps. (And makes it easier to say to admins that just >> configure the app according to the load they are experiencing.) >> >> -99 >> >> >> nille hammer wrote: >>> Man that was a quick answer! Thanks for that. I am aware of this options >>> in the configuration. I had not tuned them before, because load is not >>> my problem. Anyway I have tuned them now and am currently waiting for >>> the admistrator to deploy the newest war. >>> >>> According to acces-logs I was the only user accessing the page. So as >>> far as I understand the mechanism only one instance of index should have >>> been created and not 20. I think it is an issue with configuration in >>> production environment. But I have no idea where to take a closer look >>> (i.e. where to build in log-messages, which of Tomcat's configuration >>> options to check etc.). >>> >>> So suggestions are still more than welcome. >>> >>> Nillehammer >>> >>> 9902468 schrieb: >>>> Hi, >>>> >>>> Eventually we had to add these to appmodule: >>>> >>>> configuration.add("tapestry.page-pool.hard-limit", "60"); >>>> configuration.add("tapestry.page-pool.soft-limit", "20"); >>>> configuration.add("tapestry.page-pool.soft-wait", "20 ms"); >>>> >>>> as instructed here: >>>> http://tapestry.apache.org/tapestry5/guide/conf.html >>>> >>>> This solved our problems, and you can go up as long as your server has >>>> memory. Our problems were only in production, as development stress >>>> just >>>> isn't enough. (This is why one really should do load testing with >>>> jmeter >>>> or >>>> similar tool.) >>>> >>>> The defaults could be a bit more? Or considerably less, so that the >>>> developer would hit these walls during development and understands to >>>> load >>>> test / tune the parameters. >>>> >>>> - 99 >>>> >>>> >>>> nille hammer wrote: >>>>> Hi list, >>>>> >>>>> I am also facing the problem that 9902468 had. I have -according to >>>>> Howard's suggestion- replaced every pageLink with a customPageLink to >>>>> prevent targeted pages from being created unecessarily. The problem >>>>> persists. Trying to load the index-Page of my application with a >>>>> browser >>>>> I have to wait about two minutes before I get an empty page. In the >>>>> app's log the following Exception appears: >>>>> >>>>> java.lang.RuntimeException: The page pool for page 'Index' (in locale >>>>> de) has been exausted: there are 20 instances currently being used and >>>>> no more can be created. Try increasing the hard limit (symbol >>>>> tapestry.page-pool.hard-limit) to allow additional instances to be >>>>> created, or increasing the soft wait (symbol >>>>> tapestry.page-pool.soft-wait) to trade away some throughput for more >>>>> efficient use of page instances. >>>>> at >>>>> org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:199) >>>>> at >>>>> org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:107) >>>>> at $PagePool_11c76f8cf9a.checkout($PagePool_11c76f8cf9a.java) >>>>> at >>>>> org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:43) >>>>> at >>>>> $RequestPageCache_11c76f8cf99.get($RequestPageCache_11c76f8cf99.java) >>>>> at >>>>> $RequestPageCache_11c76f8cf91.get($RequestPageCache_11c76f8cf91.java) >>>>> ... >>>>> >>>>> In development and in production environment I use Java 6 and Tomcat >>>>> 6. >>>>> Tapestry is 5.0.14. The strange thing is that I am only seeing this in >>>>> production environment. >>>>> >>>>> Has anyone a suggestion how to track this down? I am pretty stuck with >>>>> this. >>>>> >>>>> Thanks in advance, nillehammer >>>>> >>>>> Howard Lewis Ship wrote >>>>>> Tapestry is obtaining page instances to see if there is an activation >>>>>> context for the page. >>>>>> >>>>>> I expect to optimize this in the future, to check to see if the page >>>>>> has an event handler for the passivate event. >>>>>> >>>>>> In the meantime, you could build your own PageLink component that >>>>>> generates the link by invoking >>>>>> ComponentResources.createPageLink("pagename", true) ... that will >>>>>> tell >>>>>> Tapestry to generate a link to the page with no activation context, >>>>>> and the page will NOT be queried for its context, and therefore, >>>>>> won't >>>>>> need to be attached to the current request. >>>>>> >>>>>> On Fri, Aug 29, 2008 at 3:58 AM, 9902468 <[EMAIL PROTECTED]> >>>>>> wrote: >>>>>>> Hi, >>>>>>> >>>>>>> we are experiencing strange hard pool limit reached exceptions. (For >>>>>>> the >>>>>>> user count that we have.) After debugging a little, it seems that >>>>>>> our >>>>>>> left >>>>>>> menu component, which is full of page links, instantiates not only >>>>>>> the >>>>>>> page >>>>>>> that we are at, but also the ones that are referenced in page link. >>>>>>> >>>>>>> This can be seen also in that exception page is shown, if one of the >>>>>>> pages >>>>>>> that are referenced in page links have an error. >>>>>>> >>>>>>> Is this correct behavior? And should we really use common a href= >>>>>>> tags >>>>>>> to >>>>>>> avoid this? Further more, is it possible to create infinite loop, >>>>>>> when >>>>>>> page >>>>>>> a has page link to page b, which has page link to page a? >>>>>>> >>>>>>> - 99 >>>>>>> -- >>>>>>> View this message in context: >>>>>>> http://www.nabble.com/Page-pool-hard-limit-and-page-instance-usage-tp19217773p19217773.html >>>>>>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> 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] >>> >>> >>> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Page-pool-hard-limit-and-page-instance-usage-tp19217773p19570022.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]