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
>
>