Re: Memory Management using Tomcat

From: Mike Kienenberger (mkienen..mail.com)
Date: Wed Sep 16 2009 - 14:25:53 EDT

  • Next message: Michael Gentry: "Re: Memory Management using Tomcat"

    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 <jfbaldwi..arthlink.net> 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
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Sep 16 2009 - 14:26:54 EDT