Apache::Session::Lock::MySQL モジュール

by Hippo2000(2000/8/8)

日本語チョウ訳シリーズ Apache::Session::Lock::MySQLモジュールなのです。



名前

Apache::Session::Lock::MySQL - MySQLを使って相互排他を提供します


概要

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

 my $locker = new Apache::Session::Lock::MySQL;

 $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);

説明

Apache::Session::Lock::MySQLはロックのApache::Sessionのインターフェースを満たします。相互排他はMySQLのGET_LOCKとRELEASE_LOCK関数を使うことによって実現されます。MySQL は読み込み(read)と書きこみ(write)ロックの表記法をサポートしていません。そのためこのモジュールは占有ロックだけをサポートします。共有読み込みロックを要求すると、代りに排他書きこみロックさせます。


コンフィグレーション

このモジュールはモジュールはロックを取得するMySQLデータベースへの接続方法を知らなければなりません。データソース名、ユーザ名そしてパスワードを指定しなければいけません。これらのオプションは通常のApache::Session形式で渡され、Apache::Session::Store::MySQLのためのオプションととてもよく似ています。例:

 tie %hash, 'Apache::Session::MySQL', $id, {
     LockDataSource => 'dbi:mysql:database',
     LockUserName   => 'database_user',
     LockPassword   => 'K00l'
 };

代りに、既にデータベースにオープンされているDBIハンドルを渡すことが出来ます:

 tie %hash, 'Apache::Session::MySQL', $id, {
     LockHandle => $dbh
 };

作者

This module was written by Jeffrey William Baker <jwbaker@acm.org>.


参考資料

Apache::Session


ホーム Perlの小技 Apache::Session

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。