Hi,

IIRC, your issues are related to the fact that you hang onto the root
of the hierarchy for a long time, correct? So, in your environment,
since you are holding onto a ref for a long time, the references that
that instance maintains will be kept around also.

>From Marc's comments, I believe that he is not holding onto any such
references for a long time.

-Patrick

On Nov 6, 2007 4:01 AM, Christiaan <[EMAIL PROTECTED]> wrote:
>
> Hi Marc,
>
> I am also working in an environment with large hierarchical structures. One
> thing to be aware of is that when traversing your hierarchical structure,
> the child references are not automatically released. In order to do that you
> need to call evict(). Also, when creating a hierarchical structure I set
> retainValues=false, so on commit all collections with child objects are
> nullified as well and thus can be garbage collected.
>
> One last note, I've encountered situations where cache was enabled and this
> resulted in OutOfMemory exceptions when creating large structures with
> frequent commits, even if the cache was configured to contain only a small
> amount of objects (100). Disabling the cache solved it for now, but I still
> need to look whether I can put this in a reproducable testcase.
>
> kind regards,
> Christiaan
>
>
>
> Marc Siegel wrote:
> >
> > This application is retrieving sets of hierarchical data via XML-RPC
> > and persisting them in a relational manner via OpenJPA.
> >
> > Mac 10.4
> > Java 1.5.0_07
> > OpenJPA 1.0
> > Property-based access
> > Build-time enhancement
> >
> > Entities share a common ancestor tree for shared functionality:
> > EntityWithId - Id type IDENTITY
> > EntityWithCreatedAt - @PrePersist sets a createdAt timestamp
> > EntityWithUpdatedAt - @PreUpdate sets an updatedAt timestamp
> > (currently disable due to the issue discussed on this list with
> > spurious UPDATE's called on all objects in the presence of this
> > annotation).
> > EntityWithSynchronizedAt - isChanged (boolean) and modifiedAt (timestamp)
> >
> > Does that help at all?
> >
> > -Marc
> >
> > On 11/5/07, Patrick Linskey <[EMAIL PROTECTED]> wrote:
> >> That is surprising.
> >>
> >> Before we move on and consider this resolved, can you tell us more
> >> about your system? Does your application put entities into any sort of
> >> global or shared state? What do your configuration options look like?
> >>
> >> Thanks,
> >>
> >> -Patrick
> >>
> >> On Nov 5, 2007 1:08 PM, Marc Siegel <[EMAIL PROTECTED]> wrote:
> >> > Hi Patrick,
> >> >
> >> > By creating EntityManagers and discarding (setting last reference to
> >> > null), the memory usage pattern in YourKit became the expected
> >> > "saw-tooth" pattern, and everything seems to work now.
> >> >
> >> > Thanks for your help,
> >> > -Marc
> >> >
> >> >
> >> >
> >> > On 11/5/07, Marc Siegel <[EMAIL PROTECTED]> wrote:
> >> > > Hi Patrick, I will post the result here after I try that.
> >> > >
> >> > > Thanks
> >> > > -Marc
> >> > >
> >> > > On 11/5/07, Patrick Linskey <[EMAIL PROTECTED]> wrote:
> >> > > > Do you reuse objects from one transaction in subsequent
> >> transactions?
> >> > > > If not, what happens if you close the EM and get a new one at the
> >> end
> >> > > > of every tx?
> >> > > >
> >> > > > -Patrick
> >> > > >
> >> > > > On Nov 5, 2007 10:46 AM, Marc Siegel <[EMAIL PROTECTED]>
> >> wrote:
> >> > > > > > > The strange thing is, I ran my application in a profiler
> >> (YourKit),
> >> > > > > > > and no memory is being leaked. Heap usage had just fallen to
> >> 28MB
> >> > > > > > > after garbage collection when the crash occurs.
> >> > > > > >
> >> > > > > > Hmm. That is odd.
> >> > > > > >
> >> > > > > > Are you running with the OpenJPA enhancer? Are you periodically
> >> > > > > > flushing your transactions (or are your transactions
> >> short-lived)?
> >> > > > >
> >> > > > > To answer your questions
> >> > > > >   - Yes, I am running the opanjpa enhancer at build-time
> >> > > > >   - No, I am not flushing transactions, but Yes, they are short
> >> lived
> >> > > > > and commit at conclusion.
> >> > > > >
> >> > > > > -Marc
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Patrick Linskey
> >> > > > 202 669 5907
> >> > > >
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> Patrick Linskey
> >> 202 669 5907
> >>
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/EntityManager-memory-usage-tf4752283.html#a13605264
>
> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>



-- 
Patrick Linskey
202 669 5907

Reply via email to