On Jun 18, 2008, at 6:43 PM, Arun Kumar PG wrote:

> one more point that i forgot to mention in the workflow, so i re- 
> wrote it again:
>
> - search request comes
> - if orm mapping is not created it's get created now (only happens  
> one time)
> - new session is created using  
> orm.create_session(weak_identity_map=True). now this new session is  
> added to a python dict like this:
>
> resources = {
>   SESSION: session
>   OTHER_RESOURCE: obj
> }
>
> and then this resources dict is attached to the current request  
> thread (this is done so that different DAOs can access the same  
> session and other resources from the current thread).
> - all orm queries are fired.. results processed
> - finally, current thread is accessed again and tear down happens as  
> below:
>
> resources = currentThread().resources
> resources[SESSION].clear()
> del resources
>
> my question is that i am deleting resources dict but not  
> resources[SESSION] (session object) which might be being pointed to  
> by sa data structure associated as a part of initial  
> orm.create_session call? i have not done a deep dive in sa source  
> code but just guessing.


nothing strongly references the SA session within SQLA's  
implementation (unless you are using SessionContext/scoped_session).    
As I suggested earlier, if you suspect this Session is still hanging  
around, write some debugging code that searches in gc.get_objects()  
for it, after a gc.collect() has been called.

I think it also might be worth it to look into standard SQLA usage  
patterns instead of the customized things you're doing, i.e. declare  
mappers within modules and not functions, use SessionContext, etc. 
   

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to