Re: When can cached objects be garbage-collected?

From: Andreas Hartmann (andrea..pache.org)
Date: Mon Nov 23 2009 - 12:11:46 EST

  • Next message: Joe Baldwin: "Nested ObjectContext or something else?"

    Hi Michael,

    Michael Gentry schrieb:
    > You can try dataContext.unregisterObjects() or
    > dataContext.invalidateObjects() if you need to keep other things in
    > your DC around. If not, throwing away the DC for a new one is a good
    > approach.

    DataContext.invalidateObjects() seems to have the desired effect. I have
    to invalidate all objects, including the RecipientSet object which holds
    the references to the Recipient objects. I'll do some testing if
    everything still works as expected :)

    Thanks a lot for your reply!

    Best regards,
    Andreas

    >
    > mrg
    >
    > On Mon, Nov 23, 2009 at 10:19 AM, Andreas Hartmann <andrea..pache.org> wrote:
    >> Hi everyone,
    >>
    >> I'm facing the following situation:
    >>
    >> RecipientSet has many Recipients
    >>
    >> A large number of Recipient objects are imported in a single transaction.
    >> The changes are committed e.g. every 100 recipients. Nevertheless the
    >> Recipient objects are kept in the heap, and eventually an OutOfMemoryError
    >> occurs.
    >>
    >> I have the feeling that the Recipient objects cannot be garbage-collected
    >> because of the relationship references from the RecipientSet. I didn't find
    >> any other references to the Recipient objects.
    >>
    >> Is it possible to tell Cayenne not to keep the references, or is there any
    >> other way to handle this issue? Do I have to create a new data context after
    >> the changes are committed, starting with a fresh RecipientSet?
    >>
    >> Thanks a lot in advance for any hints!
    >>
    >> Best regards,
    >> Andreas
    >>
    >>
    >> --
    >> Andreas Hartmann, CTO
    >> BeCompany GmbH
    >> http://www.becompany.ch
    >> Tel.: +41 (0) 43 818 57 01
    >>
    >>
    >

    -- 
    Andreas Hartmann, CTO
    BeCompany GmbH
    http://www.becompany.ch
    Tel.: +41 (0) 43 818 57 01
    



    This archive was generated by hypermail 2.0.0 : Mon Nov 23 2009 - 12:13:18 EST