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

Bo M. Maryniuck b.maryniuk at
Mon Sep 29 04:29:47 EDT 2003

Hi, Dieter!

On Sunday 28 September 2003 22:22, Dieter Maurer wrote:
> It is more likely a "bug" in your understanding:
>   Each ZODB connection has its own copy of a ZODB object
>   and therefore its own volatile attributes.

Hm. Does it mean that they are messed up (see below)?

>   When you delete a volatile attribute in one connection,
>   then this copy no longer has it. But that does not say
>   anything about the copies in the other connections.

OK, I did very-very-very simple test-product, which certainly only do on 

	self._v_test_connection = DCOracle2.connect('asdf at qwer/zxcv')

And the method teardown() thich should close the connection. It does:

	self._v_test_connection = None

	del self._v_test_connection # This is really optional

So I had turned off any connection, have a pure plain Zope instance without 
any connection, than had runned SQL to select active Oracle users from 
p$session view and got no one in result. OK, let's go test it. 

Now I had added my test to ZODB and run p$session SQL again. Now I see one 
active session, exactly I did it. Now, I call teardown() method which means 
"Close Oracle session and disappear forewer". And after that I had deleted 
the test object at all. After that, SQL still shows me active connection. 
Huh?! Why???

So below is the interesting questions, which I really would like to get it 
1. Why my understanding is buggy, when I set my volatile to None and Zope 
still keeps the connection? Should Zope garbagecollect it instead?
2. Why I think wrong, if I had DELETED this UNIQUE volatile and, in theory, 
Zope has no one else anymore but Oracle session still opened?
3. Why I did Control_Panel.Database.manage_minimize() and Oracle session 
finally dissapeared?
4. How else to say to my volatile: "Die immediately and release Oracle 
session!" in Python code, except call close(), delete it and set it to None?

I really interested and would be very nice if You let me know it. Thank You 

NOTE: May be this will help to find the answers: Zope 2.5 seems works much 
better in this case. Does 2.6 and 2.7 has some changes with volatile 
attributes since v. 2.5?..

Regards, Bogdan M.Maryniuck

System programmer, Forbis UAB

More information about the Zope-DB mailing list