[Zope] Trying to trap ConflictError

Michael Dunstan michael.dunstan at gmail.com
Thu Jul 6 14:34:27 EDT 2006


On 7/7/06, Jonathan <dev101 at magma.ca> wrote:
> I haven't been able to determine how the oid's are generated, other than
> "little-endian 64-bit unsigned integers that will be assigned more or less
> sequentially", but I can't figure out how the same oid is being used twice
> (on the other hand I could be totally off-base as I am really way over my
> head here!).

An oid is an identifier for a persistent state of an object. As the
state of an object evolves from transaction to transaction it gets a
new oid for each state. Two concurrent transactions that involve the
same object will start with the same state, i.e. the same oid, for
that object.

Some detail about how BTrees behave can be found in
http://www.zope.org/Wikis/ZODB/BTreeConflictResolution

Also might be illustrative to run fsdump to see what is happening in
your transactions. See
http://www.zope.org/Wikis/ZODB/FileStorageBackup. You'll need
FileStorage for that. And that only shows you details of successful
transactions.

cheers
michael


More information about the Zope mailing list