Caveat: I'm not really an expert on Cayenne memory management. 1) Are you allocating enough heap memory to the app server to start with? I don't know what the default is these days, but in the old days, an application by default only gets 64Mb of memory -- that's pretty small.
2) Are you using a new DataContext per request? Or at least per session? 3) I seem to remember that the cache strategy is configurable. Have you configured a cache that only retains N number of objects for a suitable value of N? On Wed, Sep 16, 2009 at 2:11 PM, Joe Baldwin <[email protected]> wrote: > Hi, > > I have asked this question a number of ways but I still have a very serious > problem with Cayenne-specific memory management configuration associated > with Tomcat. > > The problem with debugging is that given that I have very little visibility > into the Cayenne memory management it is extremely difficult to debug this > using conventional strategies. Also I am not requesting anything from the > system that is terribly exceptional so I am attempting to use default > settings as much as possible. > > My strategy is to ask the experts for a Cayenne configuration and standard > memory management steps I should take to conform to the new Cayenne memory > management design intentions. > > Problem: > 1. I have essentially a webstore, three tier design with Tomcat, Cayenne and > MySQL. > 2. When after only a few queries of products, tomcat freezes up and reports > out of memory errors. > > I have attempted to configure the caching strategy ask best as I can > understand from the docks but this only gets me a few more hours of usage > before the out of memory errors. (I tried the SHARED_CACHE). The NO_CACHE > strategy is worse. > > I would appreciate a set of steps (aka a primer) that should handle a > website with a lot of fetches of hundreds of data objects (i.e. products) > and very few updates. > > Note: My gut feeling is that I am not properly managing the data object > array properly and it is leaking memory. > > I would appreciate any input, but I would first like to know what the > minimum require steps are for managing at data object result set ArrayList > so as to properly cache and then properly free the memory after it is no > longer needed. > > Context: Tomcat, MySQL, Cayenne 3.0M6 > > Thanks, > Joe Baldwin > >
