NAME
Apache::Session::Lock::MySQL - Provides mutual exclusion using MySQL
SYNOPSIS
my
$locker
= Apache::Session::Lock::MySQL->new();
$locker
->acquire_read_lock(
$ref
);
$locker
->acquire_write_lock(
$ref
);
$locker
->release_read_lock(
$ref
);
$locker
->release_write_lock(
$ref
);
$locker
->release_all_locks(
$ref
);
DESCRIPTION
Apache::Session::Lock::MySQL fulfills the locking interface of Apache::Session. Mutual exclusion is achieved through the use of MySQL's GET_LOCK and RELEASE_LOCK functions. MySQL does not support the notion of read and write locks, so this module only supports exclusive locks. When you request a shared read lock, it is instead promoted to an exclusive write lock.
CONFIGURATION
The module must know how to connect to your MySQL database to acquire locks. You must provide a datasource name, a user name, and a password. These options are passed in the usual Apache::Session style, and are very similar to the options for Apache::Session::Store::MySQL. Example:
tie
%hash
,
'Apache::Session::MySQL'
,
$id
, {
LockDataSource
=>
'dbi:mysql:database'
,
LockUserName
=>
'database_user'
,
LockPassword
=>
'K00l'
};
Instead, you may pass in an already opened DBI handle to your database.
tie
%hash
,
'Apache::Session::MySQL'
,
$id
, {
LockHandle
=>
$dbh
};
AUTHOR
This module was written by Jeffrey William Baker <jwbaker@acm.org>.