Alex Couper wrote at 2005-11-25 16:30 +0000:
>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.
This means that you need ZEO. Only a single process is allowed
to open a FileStorage read/write. If several processes
need to access such a FileStorage (as in your example), they
must do it indirectly via ZEO.
With ZEO, the "os.system"ed process would open a new "DB" to the same
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org