4
4
# Apache persistent user sessions
5
# Copyright(c) 1998, 1999, 2000, 2001 Jeffrey William Baker (jwbaker@acm.org)
5
# Copyright(c) 1998, 1999, 2000, 2001, 2004 Jeffrey William Baker (jwbaker@acm.org)
6
6
# Distribute under the Artistic License
8
8
#############################################################################
49
49
Apache::Session consists of five components: the interface, the object store,
50
50
the lock manager, the ID generator, and the serializer. The interface is
51
51
defined in Session.pm, which is meant to be easily subclassed. The object
52
store can be the filesystem, a Berkeley DB, a MySQL DB, an Oracle DB, or a
53
Postgres DB. Locking is done by lock files, semaphores, or the locking
54
capabilities of MySQL and Postgres. Serialization is done via Storable, and
55
optionally ASCII-fied via MIME or pack(). ID numbers are generated via MD5.
56
The reader is encouraged to extend these capabilities to meet his own
52
store can be the filesystem, a Berkeley DB, a MySQL DB, an Oracle DB, a
53
Postgres DB, Sybase, or Informix. Locking is done by lock files, semaphores, or
54
the locking capabilities of the various databases. Serialization is done via
55
Storable, and optionally ASCII-fied via MIME or pack(). ID numbers are
56
generated via MD5. The reader is encouraged to extend these capabilities to
57
meet his own requirements.
59
59
A derived class of Apache::Session is used to tie together the three
60
60
components. The derived class inherits the interface from Apache::Session, and
246
246
Apache::Session::MySQL, Apache::Session::Postgres, Apache::Session::File,
247
Apache::Session::DB_File
247
Apache::Session::DB_File, Apache::Session::Oracle, Apache::Session::Sybase
249
249
The O Reilly book "Apache Modules in Perl and C", by Doug MacEachern and
250
250
Lincoln Stein, has a chapter on keeping state.
290
290
Jules Bean <jmlb2@hermes.cam.ac.uk>
291
291
Lincoln Stein <lstein@cshl.org>
293
Jamie LeTaul <jletual@kmtechnologies.com> fixed file locking on Windows.
295
Scott McWhirter <scott@surreytech.co.uk> contributed verbose error messages for
298
Corris Randall <corris@line6.net> gave us the option to use any table name in
301
Oliver Maul <oliver.maul@ixos.de> updated the Sybase modules
303
Innumerable users sent a patch for the reversed file age test in the file
306
Langen Mike <mike.langen@tamedia.ch> contributed Informix modules.
295
310
package Apache::Session;