Index: main/waeup.kofa/trunk/etc/debug.ini.in
===================================================================
--- main/waeup.kofa/trunk/etc/debug.ini.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/debug.ini.in	(revision 9217)
@@ -5,8 +5,8 @@
 
 [loggers]
-keys = root, wsgi
+keys = root, wsgi, async, async_trace
 
 [handlers]
-keys = console, accesslog
+keys = console, accesslog, asynclog, async_tracelog
 
 [formatters]
@@ -18,4 +18,18 @@
 [formatter_accesslog]
 format = %(message)s
+
+[handler_asynclog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async.log'),
+        'a')
+level = INFO
+formatter = generic
+
+[handler_async_tracelog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async_trace.log'),
+        'a')
+level = INFO
+formatter = generic
 
 [handler_console]
@@ -40,4 +54,16 @@
 handlers = accesslog
 qualname = wsgi
+propagate = 0
+
+[logger_async]
+level = INFO
+handlers = asynclog
+qualname = zc.async
+propagate = 0
+
+[logger_async_trace]
+level = INFO
+handlers = async_tracelog
+qualname = zc.async.trace
 propagate = 0
 
@@ -66,2 +92,3 @@
 # set the name of the zope.conf file
 zope_conf = %(here)s/zope.conf
+env_vars = ZC_ASYNC_UUID ${buildout:directory}/var/uuid1.txt
Index: main/waeup.kofa/trunk/etc/deploy.ini.in
===================================================================
--- main/waeup.kofa/trunk/etc/deploy.ini.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/deploy.ini.in	(revision 9217)
@@ -5,8 +5,8 @@
 
 [loggers]
-keys = root, wsgi
+keys = root, wsgi, async, async_trace
 
 [handlers]
-keys = console, accesslog
+keys = console, accesslog, asynclog, async_tracelog
 
 [formatters]
@@ -23,4 +23,16 @@
 propagate = 0
 
+[logger_async]
+level = INFO
+handlers = asynclog
+qualname = zc.async
+propagate = 0
+
+[logger_async_trace]
+level = INFO
+handlers = async_tracelog
+qualname = zc.async.trace
+propagate = 0
+
 [handler_console]
 class = StreamHandler
@@ -35,4 +47,18 @@
 level = INFO
 formatter = accesslog
+
+[handler_asynclog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async.log'),
+        'a')
+level = INFO
+formatter = generic
+
+[handler_async_tracelog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async_trace.log'),
+        'a')
+level = INFO
+formatter = generic
 
 [formatter_generic]
@@ -59,2 +85,3 @@
 # set the name of the zope.conf file
 zope_conf = %(here)s/zope.conf
+env_vars = ZC_ASYNC_UUID ${buildout:directory}/var/uuid1.txt
Index: main/waeup.kofa/trunk/etc/profile.ini.in
===================================================================
--- main/waeup.kofa/trunk/etc/profile.ini.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/profile.ini.in	(revision 9217)
@@ -6,8 +6,8 @@
 
 [loggers]
-keys = root, wsgi
+keys = root, wsgi, async, async_trace
 
 [handlers]
-keys = console, accesslog
+keys = console, accesslog, asynclog, async_tracelog
 
 [formatters]
@@ -24,4 +24,16 @@
 propagate = 0
 
+[logger_async]
+level = INFO
+handlers = asynclog
+qualname = zc.async
+propagate = 0
+
+[logger_async_trace]
+level = INFO
+handlers = async_tracelog
+qualname = zc.async.trace
+propagate = 0
+
 [handler_console]
 class = StreamHandler
@@ -36,4 +48,18 @@
 level = INFO
 formatter = accesslog
+
+[handler_asynclog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async.log'),
+        'a')
+level = INFO
+formatter = generic
+
+[handler_async_tracelog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'async_trace.log'),
+        'a')
+level = INFO
+formatter = generic
 
 [formatter_generic]
@@ -65,2 +91,3 @@
 # set the name of the zope.conf file
 zope_conf = %(here)s/zope.conf
+env_vars = ZC_ASYNC_UUID ${buildout:directory}/var/uuid1.txt
Index: main/waeup.kofa/trunk/etc/site.zcml.in
===================================================================
--- main/waeup.kofa/trunk/etc/site.zcml.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/site.zcml.in	(revision 9217)
@@ -5,4 +5,22 @@
   <include package="${kofa_params:devel_pkg}" />
   <include package="${kofa_params:devel_pkg}" file="mail.zcml" />
+  <!-- install job container
+
+       install a job container for asynchronous jobs. Pick one of the
+       two possibilites: 'single' for installation in the one big ZODB
+       or 'multidb' for setup with a dedicated ZODB for job handling.
+  -->
+  <!-- include package="waeup.kofa" file="async_single.zcml" / -->
+  <include package="waeup.kofa" file="async_multidb.zcml" />
+
+  <!-- install dispatcher and other needed async components
+
+       install other needed components for asynchronous jobs. Pick one
+       of the two possibilities: 'basic_dispatcher' for single ZODB
+       setup, 'multidb_dispatcher' for setup with a dedicated ZODB for
+       job handling. Make sure the setting matches the setting picked
+       above. -->
+  <!-- include package="zc.async" file="basic_dispatcher_policy.zcml" / -->
+  <include package="zc.async" file="multidb_dispatcher_policy.zcml" />
 
   <!-- Where should the datacenter reside by default? -->
Index: main/waeup.kofa/trunk/etc/zeo1.ini.in
===================================================================
--- main/waeup.kofa/trunk/etc/zeo1.ini.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/zeo1.ini.in	(revision 9217)
@@ -5,8 +5,8 @@
 
 [loggers]
-keys = root, wsgi
+keys = root, wsgi, async, async_trace
 
 [handlers]
-keys = console, accesslog
+keys = console, accesslog, asynclog, async_tracelog
 
 [formatters]
@@ -23,4 +23,16 @@
 propagate = 0
 
+[logger_async]
+level = INFO
+handlers = asynclog
+qualname = zc.async
+propagate = 0
+
+[logger_async_trace]
+level = INFO
+handlers = async_tracelog
+qualname = zc.async.trace
+propagate = 0
+
 [handler_console]
 class = StreamHandler
@@ -35,4 +47,18 @@
 level = INFO
 formatter = accesslog
+
+[handler_asynclog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'zeo1_async.log'),
+        'a')
+level = INFO
+formatter = generic
+
+[handler_async_tracelog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'zeo1_async_trace.log'),
+        'a')
+level = INFO
+formatter = generic
 
 [formatter_generic]
@@ -61,2 +87,3 @@
 # set the name of the zope.conf file
 zope_conf = %(here)s/zope_zeo1.conf
+env_vars = ZC_ASYNC_UUID ${buildout:directory}/var/uuid1.txt
Index: main/waeup.kofa/trunk/etc/zeo2.ini.in
===================================================================
--- main/waeup.kofa/trunk/etc/zeo2.ini.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/zeo2.ini.in	(revision 9217)
@@ -5,8 +5,8 @@
 
 [loggers]
-keys = root, wsgi
+keys = root, wsgi, async, async_trace
 
 [handlers]
-keys = console, accesslog
+keys = console, accesslog, asynclog, async_tracelog
 
 [formatters]
@@ -29,4 +29,16 @@
 formatter = generic
 
+[logger_async]
+level = INFO
+handlers = asynclog
+qualname = zc.async
+propagate = 0
+
+[logger_async_trace]
+level = INFO
+handlers = async_tracelog
+qualname = zc.async.trace
+propagate = 0
+
 [handler_accesslog]
 class = FileHandler
@@ -35,4 +47,18 @@
 level = INFO
 formatter = accesslog
+
+[handler_asynclog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'zeo2_async.log'),
+        'a')
+level = INFO
+formatter = generic
+
+[handler_async_tracelog]
+class = FileHandler
+args = (os.path.join(r'${zope_conf:logfiles}', 'zeo2_async_trace.log'),
+        'a')
+level = INFO
+formatter = generic
 
 [formatter_generic]
@@ -54,5 +80,5 @@
 use = egg:Paste#http
 host = ${kofa_params:host}
-port = ${kofa_params:zeo1_port}
+port = ${kofa_params:zeo2_port}
 threadpool_workers = ${kofa_params:threadpool_workers}
 use_threadpool = True
@@ -61,2 +87,3 @@
 # set the name of the zope.conf file
 zope_conf = %(here)s/zope_zeo2.conf
+env_vars = ZC_ASYNC_UUID ${buildout:directory}/var/uuid2.txt
Index: main/waeup.kofa/trunk/etc/zope.conf.in
===================================================================
--- main/waeup.kofa/trunk/etc/zope.conf.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/zope.conf.in	(revision 9217)
@@ -28,4 +28,11 @@
 </zodb>
 
+<zodb async>
+  <filestorage>
+    # create true
+    path ${zope_conf:filestorage}/Data.async.fs
+  </filestorage>
+</zodb>
+
 <eventlog>
   # This sets up logging to a file.
Index: main/waeup.kofa/trunk/etc/zope_zeo1.conf.in
===================================================================
--- main/waeup.kofa/trunk/etc/zope_zeo1.conf.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/zope_zeo1.conf.in	(revision 9217)
@@ -26,5 +26,5 @@
     server localhost:8100
     storage 1
-    # ZEO client cache, in bytes
+     # ZEO client cache, in bytes
     cache-size 20MB
     # Uncomment to have a persistent disk cache
@@ -61,4 +61,16 @@
 </zodb>
 
+<zodb async>
+  <zeoclient>
+    server localhost:8100
+    storage async
+    name async
+    # ZEO client cache, in bytes
+    cache-size 20MB
+    # Uncomment to have a persistent disk cache
+    client ${zope_conf_zeo_1:filestorage}/zeo1_async
+  </zeoclient>
+</zodb>
+
 <eventlog>
   # This sets up logging to a file.
Index: main/waeup.kofa/trunk/etc/zope_zeo2.conf.in
===================================================================
--- main/waeup.kofa/trunk/etc/zope_zeo2.conf.in	(revision 9216)
+++ main/waeup.kofa/trunk/etc/zope_zeo2.conf.in	(revision 9217)
@@ -61,4 +61,17 @@
 </zodb>
 
+<zodb async>
+  <zeoclient>
+    server localhost:8100
+    storage async
+    name async
+    # ZEO client cache, in bytes
+    cache-size 20MB
+    # Uncomment to have a persistent disk cache
+    client ${zope_conf_zeo_2:filestorage}/zeo2_async
+  </zeoclient>
+</zodb>
+
+
 <eventlog>
   # This sets up logging to a file.
