On 3/30/07, Jim Fulton <[EMAIL PROTECTED]> wrote:
> Say there's two databases, and the
> object in database '1' is the only one referencing some object in
> database '2'. Since those references would be treated like weak
> references, wouldn't the object in database '2' go away in a 'pack',
> thus causing a PosKeyError when loading the object from database '1'
> that still points to it?
Yes. That is a limitation of cross-database references.
What can be done to avoid that? Not packing the databases at all?
Would it be possible to make the loading of a cross-database reference
that is gone return some sort of 'BrokenObject' instead of a
PosKeyError, to work around the problem temporarily?
Note that treating the references differently in a pack can't help
this as the references are in the referencing database, not the
It would be cool to have:
- A multi-database pack that took multiple databases into account.
Such a feature is doable, but obviously, non-trivial.
Specially if the databases happen to be on different ZEO servers *wink*.
- A non-GC pack that got rid of old records but didn't bother with GC.
This would be advantagious for lots of folks independent of cross-
database reference issues.
Sounds like this would be the easiest way to solve the above issue?
> Right. I'm wondering how I did end up with a cross-database reference.
> Seems like a copy/paste through the ZMI caused it. My question is if
> that's expected/correct.
Cross database references are pretty transparent and automatic.
Maybe there should be an option to make them less so.
Yes, such an option would be great.
>> What version of ZODB are you using?
> The one included with Zope 2.9.6.
Hm, are you using ZEO?
I'm wondering what sort of release would be needed to help you out.
Yes, I'm using ZEO. I don't need any sort of release particularly, a
patch would be fine. As long as there's a Zope 2.9.x release sometime
in the future for the people that can't live with patches, it should
Sidnei da Silva
Enfold Systems http://enfoldsystems.com
Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org