Chris, I set up a test harness to exercise zopes optimistic transaction management. My test immediatly caused a ZODB exception. I am running zope 2.42. on win 2k, the scripts are attached. Results below: As you recall I posed the following question: What if you had a directory structure like: Folder1 Folder-2 Folder-3 ... .. Folder-n Each folder had an attribute foo and there were two scripts, script1 and script2. script1 modified foo on one Folder only while script2 traversed all the folders modifying the attribute foo on each one of them. Would the script2 ever commit while the fist while script1 was continuously called. This is interesting because a call to script2 would never finish before several calls to script1 finished. I set up a simple test with only 10 folders. I then wrote the script below changeLevel2 that is my scri1 above and changeFolders that is my script2 above. I ran changeLevel2 in a loop using the following code: ----------------------------------------script------------------------------ ----------------- import urllib params = urllib.urlencode({'theText': 'Vitamin D'}) while 1: f = urllib.urlopen("http://localhost:8080/Test/changeLevel2?%s" % params) print f.read() -----------------------------------------script----------------------------- ------------------- I then ran the script changeFolders from my browsers. The result was the following error message: ------------------------------------------------------------ ZODB.POSException.ConflictError Sorry, a site error occurred. Traceback (innermost last): File C:\zope\lib\python\ZPublisher\Publish.py, line 223, in publish_module File C:\zope\lib\python\ZPublisher\Publish.py, line 200, in publish File C:\zope\lib\python\ZPublisher\Publish.py, line 200, in publish File C:\zope\lib\python\ZPublisher\Publish.py, line 200, in publish File C:\zope\lib\python\ZPublisher\Publish.py, line 195, in publish ---------------------------------------------------------- <<scripts.txt>>
Clark OBrien wrote:
I set up a test harness to exercise zopes optimistic transaction management. My test immediatly caused a ZODB exception.
------------------------------------------------------------ ZODB.POSException.ConflictError
Please read one or more of the following: http://www.amk.ca/zodb/zodb-zeo.html http://www.zope.org/Members/jim/ZODB/ApplicationLevelConflictResolution http://www.mit.edu/afs/sipb/project/python/doc/DevGuide/Persistence.html They describe the ZODB and its optimistic concurrency strategy in detail, and should answer any questions you may have about the purpose and handling of ConflictErrors. They also contain (or link to) other information that you really should know before attempting to analyze the ZODB in any depth. Cheers, Evan @ Zope
participants (2)
-
Clark OBrien -
Evan Simpson