I am a bit confused.
I have a Zope DTML method that is generating ZODB conflict errors.
The DTML method identified as producing the conflicts is a list of calls
to other methods, conditionally executed.
Most conflicts don't cause problems because the backoff and restart of the
initial transaction will not have changed global state. In our particular
case, the conflicting transaction has changed global state in our RDBMS so
when it gets rerun, some RDBMS transactions are duplicated. And that's a
problem. The solution, of course, is to resolve the conflicts properly.
The first question: what data is generating the conflict? The DTML code
and all the method references are static and unchanged. What data does
Zope store in the ZODB when an object is evaluated?
Presumably conflicts can be reolved programatically by setting a method
on the object
_p_resolveConflict( self, old, saved, new )
and returning one or another of the states (old, saved, new). It's not
real clear how to do it.
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists -