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
<http://code.google.com/p/web2py/issues/detail?id=731#c4>
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