On 10 May 2010 21:41, Jim Fulton <j...@zope.com> wrote: > A. Change transaction._transaction.AbortSavepoint to remove the > datamanager from the transactions resources (joined data managers) > when the savepoint is rolled back and abort called on the data > manager. Then, if the data manager rejoins, it will have joined > only once. > > Update the documentation of the data manager abort method (in > IDataManager) to say that abort is called either when a transaction > is aborted or when rolling back to a savepoint created before the > data manager joined, and that the data manager is no longer joined > to the transaction after abort is called. > > This is a backward incompatible change to the interface (because it > weakens a precondition) that is unlikely to cause harm.
> I plan to implement A soon if there are no objections. > > Unless someone somehow convinced me to do D, I'll also add an > assertion in the Transaction.join method to raise an error if a > data manager joins more than once. Option A sounds sensible. It also means I won't have to change anything in the zope.sqlalchemy data manager. Laurence _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev