Syver Enstad wrote at 2004-4-2 11:38 +0200:
I am checking out how to use ZODB with twisted web. I thought that I would have the DB instance globally accesible and call the open method to get a connection on each request. I thought that if I use connection.getTransaction().commit() before sending the response I will commit on the connection for that request. Is this necesarily true when using twisted web because it is single threaded and it seems that ZODB finds the correct transaction by checking the thread.
This is true only, when you are working with "local transaction mode" (i.e. you are calling "connection.setLocalTransaction()"). Currently, this mode restricts you to a single transaction client. Neither relational databases nor other transactional clients understand this mode. Moreover, you cannot use "DBTab" to "mount" several ZODB storages. Jeremy is working on a new transaction interface for Zope 2.8./ZODB 3.3 I expect that it will fully support a thread independent transaction mode. -- Dieter