True, but it's better than not asking at all :). In my experience
system.gc() *usually* results in an immediate gc sweep in a development
environment where the JVM isn't usually all that busy.

        You're right though, it's a request, not a demand.

        --- Pat

> -----Original Message-----
> From: Mark Stang [mailto:[EMAIL PROTECTED]
> Sent: Monday, September 26, 2005 1:02 PM
> To: Tapestry users; tapestry-user@jakarta.apache.org
> Subject: RE: OutOfMemoryError Tapestry 4.0
> 
> I don't believe that calling System.gc() will have the immediate affect
> you require.  The call is more of a request than a command.
> 
> 
> -----Original Message-----
> From: seloha . [mailto:[EMAIL PROTECTED]
> Sent: Mon 9/26/2005 12:54 PM
> To: tapestry-user@jakarta.apache.org
> Subject: RE: OutOfMemoryError Tapestry 4.0
> 
> Thanks Pat,
> 
> One thing I was not doing which you pointed out was setting the list to
> null
> in pageDetached(PageEvent event) so I added this and also included
> System.gc(). This unfortunately had no affect. The list uses abstract
> getter
> and setter and is initialized in the .page spec with
> initial-value="ognl:null".
> 
> I have a number of selection models for PropertySelection components which
> are initialized lazily which I am not resetting to null each time (but
> there
> are only about 100 total items in these objects). Could these have any
> affect.
> 
> I am really poking around in the dark. Similar Spring and Hibernate
> mechanism that I wrote using Tapestry 3.0.3 is on a production system and
> has run with no problems for months. Admittedly I never go and display
> 5000
> objects at once though!
> 
> I cannot see that I am inadvertently holding onto any objects in the code
> but you never know?
> 
> Thanks again for your help,
> 
> Paul
> 
> 
> Patrick Casey <[EMAIL PROTECTED]> wrote:
> 
>       It sounds like a memory leak, but it could just be a slow garbage
> collector as well. Try adding:
> 
>       System.gc() to the end of your transaction to guarantee the garbage
> collector runs after each page render. Then see if repeated page renders
> still blow out your memory. If they do, then I suspect that somehow you
> (or
> tapestry, or spring) is hanging onto a reference to those object after
> page
> completion.
> 
>       --- Pat
> 
>       PS You *are* resetting your page properties to null (and nulling out
> the list of 5000 items) on the page's post-render cleanup phase, right?
> 
> >-----Original Message-----
> >From: seloha . [mailto:[EMAIL PROTECTED]
> >Sent: Monday, September 26, 2005 3:11 AM
> >To: tapestry-user@jakarta.apache.org
> >Subject: OutOfMemoryError Tapestry 4.0
> >
> >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 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]

Reply via email to