Isn't the OP's problem a bit more subtle? He doesn't run out of memory on the *initial* load, so one full page fits in memory. Its repeated loads of the page that eventually run him out of memory, isn't it (implying a memory leak)? Or did I misread his original problem?
--- Pat > -----Original Message----- > From: Howard Lewis Ship [mailto:[EMAIL PROTECTED] > Sent: Monday, September 26, 2005 11:45 AM > To: Tapestry users > Subject: Re: OutOfMemoryError Tapestry 4.0 > > The likely difference is how Tapestry renders the page; it will buffer > the contents in memory (a consequence of the Body component) before > streaming the entire result to the user. If your page does not use > any JavaScript, then you should be able to build it without the Body > component and the results will stream out like a Struts/JSP app. > > However, use a Table component and make those 5000 rows navigate as > 100 pages of 50 rows and your users will thank you! > > On 9/26/05, seloha . <[EMAIL PROTECTED]> wrote: > > Thanks ausias, > > > > I have thought about reducing the number of objects but a prvious > version of > > the app written with struts was able to display many more thn 5000 lines > > with no problem. A rethink on presentation may be a good idea. Also > > providing the container with more memory may help. > > > > Thanks again, > > > > Paul > > > > ausias vives <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > In my experience, the problem you're describing is not > > related directly with Tapestry, It looks like more as > > a standard problem with the available memory in the > > servlet container. > > > > I'll try to avoid returning 5000 objects at the same > > time, depending on the size of the objects this can be > > a large amount of memory, ant thus it can use all the > > jetty or tomcat available memory. You can use a > > browser to avoid returning all the objects at the same > > time. > > > > If you really need all those objects at the same time, > > you should allow the servlet container to use more > > memory (even though is always a good idea to increase > > the server memory). > > > > Definetly I recommend you to rethink the way the > > results are presented to the user (think about having > > 10 users getting 5000 objects each of them... or even > > more) > > > > Regards > > > > >I have a page which allows a user to search the > > >database based on various criteria. I have restricted the number of > > >returned > > >items to 5000. I display the items in the same search page using the > @For > > >component with volatile="ognl:true" . Repeated searches which > > >return 5000 items will result in an OutOfMemoryError exception. If I > leave > > >the > > >page and then return or stay on the page I will ultimately get an > > >OutOfMemoryError exception. > > > > > >I can view other pages after this exception but a > > >repeat of trying to display 5000 items on this page will display an > > >OutOfMemory exception. > > > > > >The only way to clear this problem is to restart the > > >servlet container. This fails using either Jetty or Tomcat in both > > >development and production environments (using different operating > > >systems). > > > > > >All the variables displaying the list are explicitly > > >declared in the .page specification and using initial-value set to > null. > > > > > >I am using Tapestry 4.0 beta 8. > > > > > >The data is retrieved using Spring and Hibernate (no > > >fancy patterns, standard Spring declarative transactions and using > > >getHibernateTemplate()) and mapped to Tapestry using hivemodule.xml: > > > > > > <implementation > > > > > service-id="hivemind.lib.DefaultSpringBeanFactoryHolder"> > > > <invoke-factory> > > > <construct autowire-services="false" > > > > > class="uk.co.cymbol.tair.tapestry.AppSpringBeanFactoryHolderImpl"> > > > <event-listener > > >service-id="hivemind.ShutdownCoordinator" /> > > > <set-object property="context" > > >value="service:tapestry.globals.WebContext" /> > > > </construct> > > > </invoke-factory> > > > </implementation> > > > > > >and injecting the appropriate Spring bean. > > > > > >I am completely confused as to how to tie down the > > >problem and isolate which section of code is causing the problem. > > > > > >Any help would be much appreciated. > > > > > >Paul > > > > > > > > > > > > > > --------------------------------------------------------------------- > > >To unsubscribe, e-mail: > > >[EMAIL PROTECTED] > > >For additional commands, e-mail: > > >[EMAIL PROTECTED] > > > > > > > > > > > > > > > > ___________________________________________________________ > > To help you stay safe and secure online, we've developed the all new > Yahoo! > > Security Centre. http://uk.security.yahoo.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] > > > > > > > -- > Howard M. Lewis Ship > Independent J2EE / Open-Source Java Consultant > Creator, Jakarta Tapestry > Creator, Jakarta HiveMind > > Professional Tapestry training, mentoring, support > and project work. http://howardlewisship.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]