Svenne Krap
svenne at krap.dk
Thu Aug 19 23:03:16 EDT 2004
Hi. Firstly, I'm running modpython 3.1.3 on apache2 (2.0.50). I have been fooling around with ModPython a little, but I am having trouble to figure out lifetime of objects. Let's consider this ==== test.py starts ==== from mod_python import apache import MYSQLdb _db = None def getdb(): global _db if _db is None: _db = MYSQLdb.connect(....) def handler(req): cnx = getdb() cur = cnx.cursor() ... return apache.OK ==== test.py ends==== As far as I can figure out from the docs, the following should be true: 1) _db is initialized exactly once for every apache process and lives as long as the process 2) cnx is copied from _db at every request, but freed after handler returns 3) cur is created at every request, but freed at handler return When I run a slightly more complex script (with the same idea though), I keep getting "too many connections" back from mysql at some point. There is only one python file served and no custom modules are loaded, so it should not be because I got too many interprenters started up. This is after 100 connections are made, but since I am the only one (guaranteed) to access the script, 100 simultanious connections is utopia. I use an extensive amount of subdomains, but everything is run through one wild-carded vhost. I usually have around 20 apache2 processes hanging around, but nothing else is using mysql. Can anyone please point out, where my problem is? And perhaps provide a pointer to a good way to pool ressources, the tutorial in the docs seems a little meager. Svenne
|