Saga continues ([Zope-DB] DCOracle2: close connection doesn't)

Bo M. Maryniuck b.maryniuk at
Sat Sep 27 07:21:52 EDT 2003


I had figured out a bit what exactly holds the Oracle session after connection 
is disposed (by rewriting whole DA from the scratch for my own special needs 
:-). The main problem is because of volatile attributes in *cache*.

Here is basic __dict__ of my object (connected):

{'_v_connected': 1, 'id': 'DA_d7c407ed856661653f05e6ce31fbef0b', 
'__ac_local_roles__': {'bo': ['Owner']}, 'title': 'F Oracle DA', 
'_v_db_connection': <Products.FbOracleDA.FDA.DBFactory instance at 
0x91d006c>, '_DA__connectionString': 'XXXX/XXXX at XXXX', '_v_cursor': None}

This is the same object after it has been disconnected:

{'_v_connected': 1, 'id': 'DA_d7c407ed856661653f05e6ce31fbef0b', 
'__ac_local_roles__': {'bo': ['Owner']}, 'title': 'F Oracle DA', 
'_DA__connectionString': 'XXXX/XXXX at XXXX', '_v_cursor': None}

Yes, no _v_db_connection, because it was whacked at all. Also I've tried set 
it to None, but was the same effect. What effect? That Oracle session is 
still present!.. I just found: if you flush Zope cache, then it will dispose 
sessions (but a bit strange: sometimes session still present, but a bit 
less). Therefore this DA object just can not be cacheable. Second: is this a 
bug with volatile attributes?.. Yes, they will not be used after some time, 
but why they are not garbagecollected after they are None? How to make 
volatiles disposed for sure?

Any ideas?

HTH, Bogdan M.Maryniuck

System programmer, Forbis UAB

More information about the Zope-DB mailing list