[EMAIL PROTECTED] wrote at 2006-8-2 15:36 -0500: > Dieter> I could only imagine that the transaction you commit is not the > Dieter> transaction the modifications are registered with. > > Dieter> This could, e.g., happen when you modify the objects in a thread > Dieter> different from where the transaction is committed (the default > Dieter> transaction manager manages a transaction per thread). However, > Dieter> you code does not give a hint that this is indeed the problem. > >That's not the case here. Some SpamBayes apps use threads, but my >train-to-exhaustion script does not.
Then, you might want to debug what happens. The basic operation is as follows: When you modify a persistent object that was not yet registered with the connection, the connection's "register" method is called. "register" registers the connection with the (current) transaction as a "ResourceManager" (if not already done) and then registers the object with the connection. An object already registered with the connection has "obj._p_changed == 1". When the transaction commits, it commits all its registered ResourceManagers which in turn commit all their registered objects. -- Dieter _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev