The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Data::Session::Driver::BerkeleyDB - A persistent session manager

Synopsis

See Data::Session for details.

Description

Data::Session::Driver::BerkeleyDB allows Data::Session to manipulate sessions via BerkeleyDB.

To use this module do both of these:

o Specify a driver of type BerkeleyDB, as Data::Session -> new(type => 'driver:BerkeleyDB ...')
o Specify a cache object of type BerkeleyDB as Data::Session -> new(cache => $object)

Also, $object must have been created with a Env parameter of type BerkeleyDB::Env. See below.

See scripts/berkeleydb.pl.

Case-sensitive Options

See "Case-sensitive Options" in Data::Session for important information.

Method: new()

Creates a new object of type Data::Session::Driver::BerkeleyDB.

new() takes a hash of key/value pairs, some of which might mandatory. Further, some combinations might be mandatory.

The keys are listed here in alphabetical order.

They are lower-case because they are (also) method names, meaning they can be called to set or get the value at any time.

o cache => $object

Specifies the object of type BerkeleyDB to use for session storage.

This key is normally passed in as Data::Session -> new(cache => $object).

Warning: This cache object must have been set up both as an object of type BerkeleyDB, and with that object having an Env parameter of type Berkeley::Env, because this module - Data::Session::Driver::BerkeleyDB - uses the BerkeleyDB method cds_lock().

This key is mandatory.

o verbose => $integer

Print to STDERR more or less information.

Typical values are 0, 1 and 2.

This key is normally passed in as Data::Session -> new(verbose => $integer).

This key is optional.

Method: remove($id)

Deletes from storage the session identified by $id.

Returns the result of calling the BerkeleyDB method delete($id).

This result is a Boolean value indicating 1 => success or 0 => failure.

Method: retrieve($id)

Retrieve from storage the session identified by $id.

Returns the result of calling the BerkeleyDB method get($id).

This result is a frozen session. This value must be thawed by calling the appropriate serialization driver's thaw() method.

Data::Session calls the right thaw() automatically.

Method: store($id => $data)

Writes to storage the session identified by $id, together with its data $data.

Returns the result of calling the BerkeleyDB method set($id => $data).

This result is a Boolean value indicating 1 => success or 0 => failure.

Method: traverse()

Retrieves all ids via a cursor, and for each id calls the supplied subroutine with the id as the only parameter.

The database is not locked during this process.

Returns 1.

Installing BerkeleyDB

        Get Oracle's BerkeleyDB from
        http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html
        I used V 5.1.19
        tar xvzf db-5.1.19.tar.gz
        cd db-5.1.19/build_unix
        ../dist/configure
        make
        sudo make install
        It installs into /usr/local/BerkeleyDB.5.1

        Get Perl's BerkeleyDB from http://search.cpan.org
        I used V 0.43
        tar xvzf BerkeleyDB-0.43.tar.gz
        cd BerkeleyDB-0.43
        Edit 2 lines in config.in:
        INCLUDE = /usr/local/BerkeleyDB.5.1/include
        LIB     = /usr/local/BerkeleyDB.5.1/lib
        perl Makefile.PL
        make && make test
        sudo make install

Support

Log a bug on RT: https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Session.

Author

Data::Session was written by Ron Savage <ron@savage.net.au> in 2010.

Home page: http://savage.net.au/index.html.

Copyright

Australian copyright (c) 2010, Ron Savage.

        All Programs of mine are 'OSI Certified Open Source Software';
        you can redistribute them and/or modify them under the terms of
        The Artistic License, a copy of which is available at:
        http://www.opensource.org/licenses/index.html