Hi Chris,<br><br>I am no ZODB expert.&nbsp; But I see a few thins that are wrong with the code.&nbsp; Others should be able to comment at length:<br><br>&nbsp; - You cant just catch ConflictError and pass<br><br>&nbsp; - I think you can catch a ReadConflictError and *retry* that is ok.
<br><br>&nbsp; - But a ConflictError needs to be *retried* manually in your client code.<br><br>If you catch a ConflictError you need to abort the transaction.<br>You should be explicit about *beginning* transactions after ending previous transaction.
<br><br>If your using threads.&nbsp; I believe you need to be a bit more careful.&nbsp; Does this code<br>corrupt ZODB if your *not* using threads?<br><br>Instead of using threads try:<br><br>&nbsp; - Write the code to be used in single process
<br><br>&nbsp; - Start 3 processes; see if that fails<br><br>&nbsp; - Remove your try/except around ConflictError.&nbsp; ConflictErrors need to be handled.<br>&nbsp; NOTE: In Zope the framework handled ConflictError's automatically but your doing
<br>&nbsp; everything *outside* of Zope.&nbsp; Which means your code needs to do the retries.<br clear="all"><br>make sense?<br><br>-- <br>Alan Runyan<br>Enfold Systems, Inc.<br><a href="http://www.enfoldsystems.com/">http://www.enfoldsystems.com/
</a><br>phone: +1.713.942.2377x111<br>fax: +1.832.201.8856