[Zope-Coders] ZEO install/runtime issues fixed

Richard Jones richard@commonground.com.au
Fri, 4 Apr 2003 15:14:32 +1000


[this is a copy of the CVS commit message, plus some extra fun at the 
end ;)]

I've fixed the various scripts etc. in the CVS so that I can now 
install a ZEO client/server setup. The way it actually ended up working 
is:

- runzope.py and zopectl.py are moved to Zope/Startup/run.py and 
Zope/zdaemon/zopectl.py respectively
- bin/mkzopeinstance now takes a "-z/--zeo host:port" which sets up a 
custom_zodb.py in the new zope instance home
- bin/mkzeoinstance now overrides less, because...
- ZEO/mkzeoinst.py generates an additional script, runzeo, which is the 
"runner" for the ZEO server. Both it an the zeoctl script need to know 
about the ZOPE_HOME, so that's been added to the scripts (via the 
params)
- fixed setup.py so it installed ZEO/schema.xml

So now, the installation of a ZEO client/server setup is as easy as:

% bin/mkzeoinstance ~/var/zeo-8082 8082
[various output messages]
% bin/mkzopeinstance -z localhost:8082 -u admin:123 ~/var/zope-8080
[no output - something would be nice here ;)]
% cd ~/var/zeo-8082
% bin/zeoctl start
daemon process started, pid=4576
% cd ~/var/zope-8080
% bin/zopectl start
. daemon process started, pid=4581

... and it's all done.

     Richard

ps. I had one hiccup - I always got the following exception in the ZEO 
server's log when first starting up (but only when the database was 
being initialsed - subsequent startups didn't get this error):

2003-04-04T14:55:09 INFO(0) zrpc-conn:127.0.0.1:56828 zeoLoad() raised 
exception: 0000000000000000
Traceback (most recent call last):
   File "/Users/richard/Zope-2.7/lib/python/ZEO/zrpc/connection.py", 
line 252, in handle_request
     ret = meth(*args)
   File "/Users/richard/Zope-2.7/lib/python/ZEO/StorageServer.py", line 
209, in zeoLoad
     v = self.storage.modifiedInVersion(oid)
   File "/Users/richard/Zope-2.7/lib/python/ZODB/FileStorage.py", line 
689, in modifiedInVersion
     raise POSKeyError(oid)
POSKeyError: 0000000000000000