I am having trouble creating connections from different threads to my zodb.
In the main thread, I create/get the database using this:


The main thread subsequently creates other threads, and I would like those threads to be able to have access to the 'db' instance created in the main thread. In that way I would be able to write:

connection = db.open() in those threads.

This is all very manageable in most of the threads that I run, as I can pass the db instance in as an argument, however there is one thread that I have to (for one reason or another) run using os.system and then the file name. This means that it can have no idea about the db created in the main thread.

My last solution was that every process that required access to the database had to open it (storage=FileStorage(...)), perform the actions that it required, and then close the database. As you can imagine this was taking far too long when lots of transactions were being made to the database from multiple threads.

Any help would be great,

Alex Couper

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to