Can I see the code? On Jun 28, 2012, at 10:08 AM, Daniel González Zaballos wrote:
> It does not work. > > If I use the self.db = 0 sometimes i get this error (and connections are > open): > > mod_wsgi (pid=1419): Exception occurred processing WSGI script > '/home/demetrio/devel/python_virtual_2.6/web2py/applications/forge2/scripts/auth.py'. > Traceback (most recent call last): > File > "/home/demetrio/devel/python_virtual_2.6/web2py/applications/forge2/scripts/auth.py", > line 64, in check_password > close_auth(auth) > File > "/home/demetrio/devel/python_virtual_2.6/web2py/applications/forge2/scripts/base_auth.py", > line 68, in close_auth > auth.close() > File > "/home/demetrio/devel/python_virtual_2.6/web2py/applications/forge2/scripts/base_auth.py", > line 97, in close > self.db.close() > File "/home/demetrio/devel/python_virtual_2.6/web2py/gluon/dal.py", line > 6343, in __getattr__ > return self[key] > File "/home/demetrio/devel/python_virtual_2.6/web2py/gluon/dal.py", line > 6337, in __getitem__ > return dict.__getitem__(self, str(key)) > KeyError: 'close' > > With BaseAdapter.close_all_instances('commit') its the same > > > El 28/06/12 16:47, Massimo Di Pierro escribió: >> why not simply? >> >> db.commit() >> db.close() >> >> if db in an on object attribute like self.db you can do >> >> if self.db: >> self.db.commit() >> self.db.close() >> self.db = 0 >> >> you can also do: >> >> BaseAdapter.close_all_instances('commit') >> >> >> >> On Friday, 22 June 2012 11:23:47 UTC-5, demetrio wrote: >> >> Hi everyone, >> >> I have connected WebDAV and SVN auth with a wsgi script. I needed to use a >> standalone DAL. When you do a dav petition with the navigator it makes a lot >> of petitions. Well, the thing is that always there is a connection opened (i >> can see them with PhpMyAdmin) >> >> if self.db: >> self.db._adapter.close() >> >> seeing this issue: http://code.google.com/p/web2py/issues/detail?id=731 >> >> I have tried a lot of the lines that i found there >> >> something like: >> >> if self.db: >> from gluon.dal import BaseAdapter >> BaseAdapter.close_all_instances(None) >> BaseAdapter.close_all_instances('commit') >> BaseAdapter.close_all_instances('rollback') >> >> something like: >> if self.db: >> from gluon.dal import thread as dal_thread >> dal_thread.instances.remove(self.db._adapter) >> self.db._adapter.close() >> >> and even something desesperated like: >> if self.db: >> from gluon.dal import thread as dal_thread >> dal_thread.instances.remove(self.db._adapter) >> self.db._adapter.close() >> self.db._adapter.close_all_instances(None) >> self.db._adapter.close_all_instances('commit') >> self.db._adapter.close_all_instances('rollback') >> >> from gluon.dal import ConnectionPool >> ConnectionPool.close_all_instances(None) >> ConnectionPool.close_all_instances('commit') >> ConnectionPool.close_all_instances('rollback') >> >> from gluon.dal import BaseAdapter >> BaseAdapter.close_all_instances(None) >> BaseAdapter.close_all_instances('commit') >> BaseAdapter.close_all_instances('rollback') >> >> But always, in the best, it leaves at least one connection opened, and i >> don't know how to deal with it. >> >> I have using web2py 1.99.7 in both development and production environments. >> >> Any ideas? in this moment we are building a python mysql script, but we want >> to use DAL to make it runnable on any of the web2py/DAL supported db >> >> Thanks in advance > >