I'm writing a custom data manager. The data manager should execute before
the connection's data manager. So I provided the "sortKey" method. This
works fine for the usual commit(). Once savepoints are involved however
this fails, the connection's savepoint/rollback is executed before my
custom data manager's savepoint/rollback.
This code in _transaction.py (in the _commitResources method) sorts the
L = list(self._resources)
The problem is _commitResources is only executed from within commit().
This means for a sequence such as
transaction.get().join( myDataManager )
the data managers are not sorted unless commit is encountered. If I move
the sorting code to the join() method instead, I get the proper search
Is this a bug?
P.S.: Thanks for this great writeup: http://repoze.org/tmdemo.html . It
should be part of the official docs/the upcoming book.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org