[Zope-dev] Question about _v_ attributes and database connections
Marco Bizzarri
emmebi at icube.it
Thu Mar 11 02:51:03 EST 2004
On Wed, Mar 10, 2004 at 02:56:33PM +0000, Chris Withers wrote:
> Marco Bizzarri wrote:
>
> > What I would like to do is to have an hook to the removal of a _v_
> > attribute, so that I can perform some action *BEFORE* losing any
> > reference to the object itself. I look at the setattr code in
> > cPersistence.c and tried also to write my own __setattr__,
>
> __setattr__ isn't the hook you're looking for..
Correct, I discovered that after some digging.
> This is better done in a transcation-hooking type way, a la CTM.py in
> ZOracleDA...
>
> cheers,
>
> Chris
I'm trying something inspired to that at the moment... I succeeded in
installing an hack, very inspired from your code (but at a much simpler
level) and some code in the SecurityManager, where I mantain a dictionary
of connections, indexed by the result of thread.get_ident(). Once a
thread needs a new connection, either it is present in the dictionary
or not. If it is present, give it to the thread and assign that to the
_v_database_connection attribute. Otherwise, create a new one, put in
the dictionary, and go on as before.
Of course this is a (horrible) hack, because if you have more than one
ZPsycopg objects you will end with mixed connections (aaaaargh!)
As a proof of concept however it works, and it is resistent to the
refreshing of other products (not the ZPsycopg one).
Regards
Marco
> --
> Simplistix - Content Management, Zope & Python Consulting
> - http://www.simplistix.co.uk
--
Marco Bizzarri - Amministratore Delegato - Icube S.r.l.
Sede: Via Ridolfi 15 - 56124 Pisa (PI), Italia
E-mail: m.bizzarri at icube.it WWW: www.icube.it
Tel: (+39) 050 97 02 07 Fax: (+39) 050 31 36 588
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20040311/e340ce48/attachment.bin
More information about the Zope-Dev
mailing list