Etienne Labuschagne wrote at 2003-2-20 18:48 +0200:
Worker threads in one of my programs get a hook into the ZODB as follows:
zopeRootOb = ZODB.ZApplication.ZApplicationWrapper(DB, 'Application', OFS.Application.Application, (), Globals.VersionNameName)()
( I think the following does the same, but haven't tried it: zopeRootOb = Zope.app() )
I get a problem where the above call will block indefinately.
After poking around I found that the blocking happens when len(DB._pools[1][0][1]) goes to zero.
You need to close the connection when you no longer need it: zopeRootOb._p_jar.close() The "_p_jar" is the connection (unless it is "None", in which case the object is not (yet) persistent). Dieter