Data::Session::Driver::BerkeleyDB - A persistent session manager
Contents
Case-Sensitive Options
See "Case-sensitive Options" in Data::Session for important information.
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
perl v5.36.0 2023-02-14 Data::Session::Driver::BerkeleyDB(3pm)
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.
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
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.
Name
Data::Session::Driver::BerkeleyDB - A persistent session manager
Support
Log a bug on RT: <https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Session>.
Synopsis
See Data::Session for details.
