[Zope-dev] Re: circular referenced persistent objects

Casey Duncan casey at zope.com
Mon Apr 12 12:09:26 EDT 2004


On Mon, 12 Apr 2004 10:57:43 -0500
<zope at netchan.cotse.net> wrote:

> Casey,
> 
> Thanks for the clarification.
> 
> > >  - Is there an equivalent of sys.getrefcount for ZODB persistent
> > > objects?
> 
> This is still a question. Is there any way, to determine how many
> times a zodb persistent object is referenced? sys.getrefcount seems to
> tell me only those references which are currently loaded in the
> memory. Also another very interesting question is that who referring
> to a specific object.

Not from a given object. You would need to walk the forward references
(which are tracked) of all the objects to find this out. I posted some
code to do this from any starting object in the ZODB a long time ago.
Search the mail archives if you're interested.
 
> > > For this I got the oid of the object,
> > > deleted it and than tried to get it back via the oid. The trick
> > > is, that you'll only get a POSKeyError if you pack the database 
> > and flush
> > > the cache. This latter one was not obvious for me.
> > 
> > Such tricks are not necessary and cause your app to rely too 
> > much on the
> > curent implementation of ZODB. Just let the database take care of
> > this for you.
> 
> I used this trick only for exploring ZODB behavior. The application
> doesn't do any nasty tricks.

ok.

-Casey



More information about the Zope-Dev mailing list