man > Apache::Session::Lock::MySQL(3pm)

📄 NAME

Apache::Session::Lock::MySQL - Provides mutual exclusion using MySQL

🚀 Quick Reference

Use CaseCommandDescription
🔧 Initialize lockermy $locker = Apache::Session::Lock::MySQL->new();Create a new locker object
🔓 Acquire shared read lock$locker->acquire_read_lock($ref);Promoted to exclusive write lock
🔒 Acquire exclusive write lock$locker->acquire_write_lock($ref);Mutual exclusion via MySQL GET_LOCK
🔓 Release read lock$locker->release_read_lock($ref);Release lock via RELEASE_LOCK
🔒 Release write lock$locker->release_write_lock($ref);Release exclusive lock
🔓 Release all locks$locker->release_all_locks($ref);Clear all held locks
🔗 Initialize with DSN/credentialstie %hash, 'Apache::Session::MySQL', $id, { LockDataSource => 'dbi:mysql:database', LockUserName => 'user', LockPassword => 'pass' };Provide datasource, user, password
🔗 Initialize with existing DBI handletie %hash, 'Apache::Session::MySQL', $id, { LockHandle => $dbh };Reuse already opened database handle

🛠️ SYNOPSIS

use Apache::Session::Lock::MySQL;

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 AT acm.org>.

🔍 SEE ALSO

Apache::Session

perl v5.30.3 2020-09-20 Apache::Session::Lock::MySQL(3pm)

Apache::Session::Lock::MySQL(3pm)
📄 NAME 🚀 Quick Reference 🛠️ SYNOPSIS 📚 DESCRIPTION ⚙️ CONFIGURATION 👤 AUTHOR 🔍 SEE ALSO

Generated by phpman v4.9.26-1-g511901d · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-08-04 05:15 @216.73.216.156
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format