Thanks Massimo. The exception works fine, but the problem raised when 
calling a grid. Didn't realize it's not possible to connect to another 
session within the "except" segment. Seems that code has to be outside. 
Still learning python here :)


db.py
-----
try:
    from gluon.contrib.memcache import MemcacheClient
    memcache_servers = ['127.0.0.1:11211']
    cache.memcache = MemcacheClient(request, memcache_servers)
    cache.ram = cache.disk = cache.memcache
    from gluon.contrib.memdb import MEMDB
    session.connect(request,response,db=MEMDB(cache.memcache))
except Exception:
    session.connect(request, response, db=db) # doesn't work
    pass

# had to do it this way, and then all works as expected
if not session:
    session.connect(request, response, db=db)

db.define_table('mytable',Field('myfield','string'))


default.py
----------
def gr():
    q = (db.mytable.id>0)
    grid=SQLFORM.grid(q)
    return dict()









On Monday, December 24, 2012 5:11:17 PM UTC-5, Massimo Di Pierro wrote:
>
> Can you try replace:
>
> except:
>
> with
>
> except Exception:
>
> On Monday, 24 December 2012 10:04:08 UTC-6, Adi wrote:
>>
>> Tried catching the exception when memcache is not available to switch to 
>> db caching, but getting an excepting. 
>>
>> Should it be possible to catch this exception, ignore it and continue 
>> running? 
>>
>> Thanks,
>> Adnan
>>
>>
>> try:
>>     from gluon.contrib.memcache import MemcacheClient
>>     memcache_servers = ['127.0.0.1:11211']
>>     cache.memcache = MemcacheClient(request, memcache_servers)
>>     cache.ram = cache.disk = cache.memcache
>>     from gluon.contrib.memdb import MEMDB
>>     session.connect(request,response,db=MEMDB(cache.memcache))
>> except:
>>     sys.exc_clear()
>>     session.connect(request, response, db=db)
>>     pass
>>
>>
>>
>> Traceback (most recent call last):
>>  File "/Users/adnan/web2py24/gluon/main.py", line 557, in wsgibase
>>  session._try_store_in_db(request, response)
>>  File "/Users/adnan/web2py24/gluon/globals.py", line 739, in_try_store_in_db
>>  record_id = table.insert(**dd)
>>  File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 256, in insert
>>  id = self._create_id()
>>  File "/Users/adnan/web2py24/gluon/contrib/memdb.py", line 296, in_create_id
>>  raise Exception('cannot set memcache')
>> Exception: cannot set memcache
>>
>>
>>
>> Frames 
>>  
>>  
>>
>>  File /Users/adnan/web2py24/gluon/main.py in wsgibase at line 557 code 
>> arguments variables 
>>  
>>  
>>
>>  File /Users/adnan/web2py24/gluon/globals.py in _try_store_in_db at line 
>> 739 code arguments variables 
>>  
>>  
>>
>>  File /Users/adnan/web2py24/gluon/contrib/memdb.py in insert at line 256code 
>> arguments variables 
>>  
>>  
>>
>>  File /Users/adnan/web2py24/gluon/contrib/memdb.py in _create_id at line 
>> 296 code arguments variables 
>>  
>> Function argument list 
>>
>> (self=<DALStorage {'client_ip': <gluon.contrib.memdb.F...luon.contrib.
>> memdb.Field object at 0x111d554d0>}>) 
>>  
>> Code listing 
>> 291.
>> 292.
>> <span style="color: #066;" class="styled-by-prettify"...
>> Show 
>> original<https://groups.google.com/group/web2py/msg/dc3f7fc28bb3d0c5?dmode=source&output=gplain&noredirect>
>>
>

-- 



Reply via email to