[ZODB-Dev] ZEO.ClientStorage replication: invalidations don't work

Dieter Maurer dieter at handshake.de
Thu Jan 26 14:08:44 EST 2006


Mihai Ilinca wrote at 2006-1-26 15:10 +0200:
> ...
>Trough 'slave' I only do read operations at the moment. If I make changes to 
>the stored data trough the 'main' client, the 'slave' clients don't see it. 
>They only see the data as it was when the ClientStorage was constructed. If I 
>restart a 'slave' (the class gets constructed again), the changes are 
>visible. Basically, it's like having no Invalidation system whatsoever.
>
>What am I doing wrong here?

You are running the "asyncore" main loop in a separated thread?

If not, a client storage processes invalidation messages only
when used. Often the necessary objects are already in the ZODB cache
and the storage is not used.

Also note that you will see changes only at transaction boundaries.
Inside a transaction, you will never see any changes.

> ...
>"/home/packages/devel/binary/zodb/zodb3-3.4.0/debian/python2.4-zodb3/usr/lib/python2.4/site-packages/ZEO/ClientStorage.py"
> , line 79, in __getattr__
> ZEO.Exceptions.ClientDisconnected

The ZEO connection was closed.


-- 
Dieter


More information about the ZODB-Dev mailing list