<component>

  <sectiontype name="zeo">

    <description>
      The content of a ZEO section describe operational parameters
      of a ZEO server except for the storage(s) to be served.
    </description>

    <key name="address" datatype="socket-binding-address"
         required="yes">
      <description>
        The address at which the server should listen.  This can be in
        the form 'host:port' to signify a TCP/IP connection or a
        pathname string to signify a Unix domain socket connection (at
        least one '/' is required).  A hostname may be a DNS name or a
        dotted IP address.  If the hostname is omitted, the platform's
        default behavior is used when binding the listening socket (''
        is passed to socket.bind() as the hostname portion of the
        address).
      </description>
    </key>

    <key name="read-only" datatype="boolean"
         required="no"
         default="false">
      <description>
        Flag indicating whether the server should operate in read-only
        mode.  Defaults to false.  Note that even if the server is
        operating in writable mode, individual storages may still be
        read-only.  But if the server is in read-only mode, no write
        operations are allowed, even if the storages are writable.  Note
        that pack() is considered a read-only operation.
      </description>
    </key>

    <key name="invalidation-queue-size" datatype="integer"
         required="no"
         default="100">
      <description>
        The storage server keeps a queue of the objects modified by the
        last N transactions, where N == invalidation_queue_size.  This
        queue is used to speed client cache verification when a client
        disconnects for a short period of time.
      </description>
    </key>

    <key name="invalidation-age" datatype="float" required="no">
      <description>
        The maximum age of a client for which quick-verification
        invalidations will be provided by iterating over the served
        storage. This option should only be used if the served storage
        supports efficient iteration from a starting point near the
        end of the transaction history (e.g. end of file).
      </description>
    </key>

    <key name="monitor-address" datatype="socket-binding-address"
         required="no">
      <description>
        The address at which the monitor server should listen.  If
        specified, a monitor server is started.  The monitor server
        provides server statistics in a simple text format.  This can
        be in the form 'host:port' to signify a TCP/IP connection or a
        pathname string to signify a Unix domain socket connection (at
        least one '/' is required).  A hostname may be a DNS name or a
        dotted IP address.  If the hostname is omitted, the platform's
        default behavior is used when binding the listening socket (''
        is passed to socket.bind() as the hostname portion of the
        address).
      </description>
    </key>

    <key name="transaction-timeout" datatype="integer"
         required="no">
      <description>
        The maximum amount of time to wait for a transaction to commit
        after acquiring the storage lock, specified in seconds.  If the
        transaction takes too long, the client connection will be closed
        and the transaction aborted.
      </description>
    </key>

    <key name="authentication-protocol" required="no">
      <description>
        The name of the protocol used for authentication.  The
        only protocol provided with ZEO is "digest," but extensions
        may provide other protocols.
      </description>
    </key>

    <key name="authentication-database" required="no">
      <description>
        The path of the database containing authentication credentials.
      </description>
    </key>

    <key name="authentication-realm" required="no">
      <description>
        The authentication realm of the server.  Some authentication
        schemes use a realm to identify the logical set of usernames
        that are accepted by this server.
      </description>
    </key>

    <key name="pid-filename" datatype="existing-dirpath"
         required="no">
      <description>
        The full path to the file in which to write the ZEO server's Process ID
        at startup. If omitted, $INSTANCE/var/ZEO.pid is used.
      </description>
      <metadefault>$INSTANCE/var/ZEO.pid (or $clienthome/ZEO.pid)</metadefault>
    </key>

    <!-- DM 2006-06-12: added option -->
    <key name="drop-cache-rather-verify" datatype="boolean"
         required="no" default="false">
       <description>
         indicates that the cache should be dropped rather than
	 verified when the verification optimization is not
	 available (e.g. when the ZEO server restarted).
       </description>
    </key>

  </sectiontype>

</component>
