[ZODB-Dev] ConflictErrors won't clear
Chris Withers
chris at simplistix.co.uk
Thu Apr 14 10:35:54 EDT 2005
Hi there,
I have a non-zope zeo client that pumps data into a storage server for
later consumption by a zope zeo client. Everything is Zope 2.7.5.
The non-zope client has logic that looks roughly like:
for work in queue:
try:
get_transaction().begin()
# do work, change zodb objects, etc
get_transaction().commit()
except ConflictError:
get_transaction().abort()
queue.append(work)
except:
get_transaction().abort()
Does anything look amiss there?
The reason I ask is that it works fine, unless someone changes something
via the zope zeo client resulting in a conflict error on the non-zope
zeo client. When that happens, the work where the conflict occurs gets
put back in the queue, but seems to conflict again next time round, even
though the change on the zope zeo client is long since committed and
passed. The "work" effectively gets stuck in an endless loop of being
retried and then conflicterror'ing :-(
Any ideas why that could be?
cheers,
Chris
--
Simplistix - Content Management, Zope & Python Consulting
- http://www.simplistix.co.uk
More information about the ZODB-Dev
mailing list