%PDF- %PDF-
Direktori : /usr/local/perl/mysql/lib/perl5/site_perl/5.8/Apache/Session/MySQL/ |
Current File : //usr/local/perl/mysql/lib/perl5/site_perl/5.8/Apache/Session/MySQL/NoLock.pm |
############################################################################# # # Apache::Session::MySQL::NoLock # Apache persistent user sessions in a MySQL database without locking # Copyright(c) 2010 Tomas (t0m) Doran (bobtfish@bobtfish.net) # Distribute under the Perl License # ############################################################################ package Apache::Session::MySQL::NoLock; use strict; use vars qw(@ISA $VERSION); $VERSION = '0.01'; @ISA = qw(Apache::Session); use Apache::Session; use Apache::Session::Lock::Null; use Apache::Session::Store::MySQL; use Apache::Session::Generate::MD5; use Apache::Session::Serialize::Storable; sub populate { my $self = shift; $self->{object_store} = Apache::Session::Store::MySQL->new($self); $self->{lock_manager} = Apache::Session::Lock::Null->new($self); $self->{generate} = \&Apache::Session::Generate::MD5::generate; $self->{validate} = \&Apache::Session::Generate::MD5::validate; $self->{serialize} = \&Apache::Session::Serialize::Storable::serialize; $self->{unserialize} = \&Apache::Session::Serialize::Storable::unserialize; return $self; } 1; =pod =head1 NAME Apache::Session::MySQL::NoLock - An implementation of Apache::Session::MySQL without locking =head1 SYNOPSIS use Apache::Session::MySQL::NoLock; #if you want Apache::Session to open new DB handles: tie %hash, 'Apache::Session::MySQL::NoLock', $id, { DataSource => 'dbi:mysql:sessions', UserName => $db_user, Password => $db_pass, }; #or, if your handles are already opened: tie %hash, 'Apache::Session::MySQL::NoLock', $id, { Handle => $dbh, }; To configure the non-locking session store in RT (what I use this module for), put the following into your C<RT_SiteConfig.pm> module: Set($WebSessionClass , 'Apache::Session::MySQL::NoLock'); =head1 DESCRIPTION This module is an implementation of Apache::Session. It uses the MySQL backing store and the Null locking scheme. See the example, and the documentation for Apache::Session::Store::MySQL for more details. =head1 WARNING This module explicitly B<DOES NOT DO ANY LOCKING>. This can cause your session data to be overwritten or stale data to be read by subsequent requests. This B<CAN CAUSE LARGE PROBLEMS IN YOUR APPLICATION>. =head1 AUTHOR This module was written by Tomas Doran <bobtfish@bobtfish.net>. =head1 SEE ALSO L<Apache::Session::MySQL>, L<Apache::Session::Flex>, L<Apache::Session> =cut