[Zope] Zeo as a Zeo Client

Gerhard Schmidt estartu at ze.tum.de
Tue May 2 02:31:17 EDT 2006


Hallo, 

I am trying to install a setup like shown below 

ZEO_M 
 | -- ZEO_B
 |     | -- ZOPE
 |     | -- ZOPE
 |     | -- ZOPE
 |     ...
 | -- ZOPE
 | -- ZOPE 
 ...

The ZEO_B should be a zeoclient of the ZEO_M (MainZEO). The reason for
this setup ist that the ZEO_B is located in a backup computing center on 
the other side of our campus.

When I configured the ZEO_B as a zeoclient of the ZEO_M. I comes up 
without problem. I've connected the first client, the connection is 
establisched but the server never come up. 

Here is the log from ZEO_B level debug 

2006-05-02T08:21:45 BLATHER ZEO.zrpc (65280) connect from ('10.152.64.1', 54853): <ManagedServerConnection ('10.152.64.1', 54853)>
------
2006-05-02T08:21:45 INFO ZEO.zrpc.Connection(S) (10.152.64.1:54853) received handshake 'Z303'
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) calling getAuthProtocol()
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) getAuthProtocol returns None
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) calling register('main', False)
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) register returns None
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) calling get_info()
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) get_info returns {'supportsVersions': 1, 'name': 'main (connected)', 'length'...
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) calling endZeoVerify()
------
2006-05-02T08:21:45 DEBUG ZEO.zrpc.Connection(S) (10.152.64.1:54853) calling loadEx('\x00\x00\x00\x00\x00\x00\x00\x00', '')

here is the log for the zope server on ZEO_B  

2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) ClientStorage (pid=65292) created RW/normal for storage: 'main'
2006-05-02 08:21:45 INFO ZEO.cache reusing persistent cache file '/data/zope/console28/var/frontend-main.zec'
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Testing connection <ManagedClientConnection ('10.152.64.1', 8110)>
2006-05-02 08:21:45 INFO ZEO.zrpc.Connection(C) (10.152.64.1:8110) received handshake 'Z303'
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Server authentication protocol None
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Connected to storage: ('10.152.64.1', 8110)
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Verifying cache
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Waiting for cache verification to finish
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) Waiting for cache verification to finish
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) endVerify finishing
2006-05-02 08:21:45 INFO ZEO.ClientStorage (65292) endVerify finished
^C2006-05-02 08:22:09 INFO ZEO.ClientStorage (65292) Disconnected from storage: "('10.152.64.1', 8110)"
Traceback (most recent call last):
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/run.py", line 56, in ?
    run()
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/run.py", line 21, in run
    starter.prepare()
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/__init__.py", line 98, in prepare
    self.startZope()
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/__init__.py", line 257, in startZope
    Zope2.startup()
  File "/usr/local/www/Zope28/lib/python/Zope2/__init__.py", line 47, in startup
    _startup()
  File "/usr/local/www/Zope28/lib/python/Zope2/App/startup.py", line 57, in startup
    DB = configuration.dbtab.getDatabase('/', is_root=1)
  File "/usr/local/www/Zope28/lib/python/DBTab/DBTab.py", line 96, in getDatabase
    db = self._createDatabase(name, is_root)
  File "/usr/local/www/Zope28/lib/python/DBTab/DBTab.py", line 113, in _createDatabase
    db = factory.open()
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/datatypes.py", line 163, in open
    DB = self.createDB()
  File "/usr/local/www/Zope28/lib/python/Zope2/Startup/datatypes.py", line 160, in createDB
    return ZODBDatabase.open(self)
  File "/usr/local/www/Zope28/lib/python/ZODB/config.py", line 103, in open
    version_cache_size=section.version_cache_size)
  File "/usr/local/www/Zope28/lib/python/ZODB/DB.py", line 239, in __init__
    storage.load(z64,'')
  File "/usr/local/www/Zope28/lib/python/ZEO/ClientStorage.py", line 746, in load
    return self.loadEx(oid, version)[:2]
  File "/usr/local/www/Zope28/lib/python/ZEO/ClientStorage.py", line 769, in loadEx
    data, tid, ver = self._server.loadEx(oid, version)
  File "/usr/local/www/Zope28/lib/python/ZEO/ServerStub.py", line 192, in loadEx
    return self.rpc.call("loadEx", oid, version)
  File "/usr/local/www/Zope28/lib/python/ZEO/zrpc/connection.py", line 531, in call
    r_flags, r_args = self.wait(msgid)
  File "/usr/local/www/Zope28/lib/python/ZEO/zrpc/connection.py", line 638, in wait
    asyncore.poll(delay, self._singleton)
  File "/usr/local/lib/python2.4/asyncore.py", line 122, in poll
    r, w, e = select.select(r, w, e, timeout)
KeyboardInterrupt

I started it with runzope and killed it with CRTL-c. I had it once waiting for 
2 hours without any difference. 

here is the ZEO_B config file 

# ZEO configuration file

%define INSTANCE /data/zope/zeoproxy01

<zeo>
  address 8110
  read-only false
  invalidation-queue-size 100
  # pid-filename $INSTANCE/var/ZEO.pid
  # monitor-address PORT
  # transaction-timeout SECONDS
</zeo>

<zeoclient main>
  server 10.152.64.1:8100
  storage main
  name main
#  var $INSTANCE/var
#  client zeoproxy01
#  cache-size 600MB
</zeoclient>

<eventlog>
  level debug
  <logfile>
    path $INSTANCE/log/zeo.log
  </logfile>
</eventlog>

<runner>
  program $INSTANCE/bin/runzeo
  socket-name $INSTANCE/etc/zeo.zdsock
  daemon true
  forever false
  backoff-limit 10
  exit-codes 0, 2
  directory $INSTANCE
  default-to-interactive true
  # user zope
  python /usr/local/bin/python
  zdrun /usr/local/www/Zope28/lib/python/zdaemon/zdrun.py

  # This logfile should match the one in the zeo.conf file.
  # It is used by zdctl's logtail command, zdrun/zdctl doesn't write it.
  logfile $INSTANCE/log/zeo.log
</runner>

The Zope Server directly on ZEO_M works without problems.

Regards 
   Estartu

----------------------------------------------------------------------------
Gerhard Schmidt    | Nick : estartu      IRC : Estartu  |
Fischbachweg 3     |                                    |  PGP Public Key
86856 Hiltenfingen | EMail: estartu at augusta.de          |  on request 
Germany            | 					|  





More information about the Zope mailing list