I have a product which needs to maintain a connection to a 300MB database file (Metakt, if you must know). The initial connection takees about 3 seconds, due to the size of the file, so I wanted to make a product that will keep the connection open, and re-use it. I made a python base class which opens the connection, but I get the following error from zope when it tries to pickle the object into the ZODB. Traceback (innermost last): File /home/ultraseek/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 214, in publish_module File /home/ultraseek/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 179, in publish File /home/ultraseek/Zope-2.1.6-src/lib/python/Zope/__init__.py, line 202, in zpublisher_exception_hook (Object: RoleManager) File /home/ultraseek/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 169, in publish File /home/ultraseek/Zope-2.1.6-src/lib/python/ZODB/Transaction.py, line 237, in commit File /home/ultraseek/Zope-2.1.6-src/lib/python/ZODB/Connection.py, line 325, in commit (Info: (('*yr88KIATmOLZfiZXPxWNeA==', 'ODP'), '\000\000\000\000\000\000\000\262', '')) UnpickleableError: (see above) I don't actually need the database connection itself to be in the ZODB, as it will not be open the next time zope restarts, anyway, but I would like it to remain resident in memory so that I can use it without reconnecting on every request. Additonally, it would be gat to be able to detect when the connection has gone down, and re-create it. Any tips? I am sure it can be done, but I have no idea where to even start, as far as adding something to the global namespace --sam