Author: David Glick, Groundwire



``Products.BeakerSessionDataManager`` is a replacement for the default Zope 2
session implementation. (Compatible with Zope 2.10 and later.)  It uses
`Beaker`_ as a backend (via `collective.beaker`_) and adapts the Beaker session
to provide the same interface as a normal Zope session.

Beaker is a better alternative to the default session implementation for several

 * The Zope session implementation does not perform well in high-write scenarios.
 * Beaker provides better flexibility in where session data is actually stored.
 * Beaker is used and maintained outside of the Zope ecosystem.

.. Note::
   If you are developing a product that needs sessions but are not already
   using Zope sessions, you should probably just use collective.beaker
   directly. This product is meant for use with existing add-ons that already
   use Zope sessions (i.e. request.SESSION).

.. _`Beaker`:
.. _`collective.beaker`:


1. Add the Products.BeakerSessionDataManager egg to your buildout::

    eggs =

2. Make sure that buildout adds Beaker configuration to zope.conf. For example::

    zope-conf-additional =
        <product-config beaker>
            session.type            file
            session.data_dir        ${buildout:directory}/var/sessions/data
            session.lock_dir        ${buildout:directory}/var/sessions/lock
            session.key             beaker.session
            session.secret          secret

   The "secret" should be replaced with a unique string for your system. It
   must be the same for all Zope instances using the same session store.

   See the `collective.beaker`_ docs for more details on configuration.

3. In the ZMI, delete the ``session_data_manager`` object and add a
   ``Beaker Session Data Manager``.


* Beaker does not automatically clean up old sessions, so you may want to set
  up a cron job to take care of this.


* David Glick [davisagli]
* Paul Roe [kuetrzi]

.. include:: CHANGES.rst


1.1 (2011-12-05)

- Made compatible with Zope 2.10.

1.0 (2011-06-29)

- Add test and fix for missing __len__.

1.0b1 (2011-04-17)

- Initial release.