Santi Camps wrote at 2003-11-24 23:14 +0100:
I've a product, http://zetadb.sourceforge.net, that uses SESSION extensively. I've just discover, unhappiness, that there are some problems when SESSION object is changed at the same time in two diferent python scripts (using frames). The two frames are changing diferent keys of the SESSION object, but at the end the whole SESSION object is saved, I think, so one of the two objects losses its SESSION data
It should *NOT* loose its session data but get a "ConflictError" and automatically retry the request.
That's normal ZODB behaviour.
Search for "Application specific conflict resolution" for a (complex, in your case) way to work around this.
A partial workaround may be to put your various keys into persistent subobjects.
I'm trying to understand how Conflict Resolution works. The first step will be change my DirectoryStorage for a FileStorage and try again. As you say, I seems that Zope retries the request 3 times when a ConflictError is raised, so it should work in my case. If not, I will try to debug and see how not, or perhaps disabling low conflict flag. If, at the end, it countinues crashing, I will store my data in persistent subobjects. Thanks a lot Santi Camps