Apache::Session::Store::Sybase モジュール

by Hippo2000(2000/8/8)

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



名前

Apache::Session::Store::Sybase - 永続データをSybaseデータベースに格納する


概要

 use Apache::Session::Store::Sybase;

 my $store = new Apache::Session::Store::MySQL;

 $store->insert( $ref );
 $store->update( $ref );
 $store->materialize( $ref );
 $store->remove( $ref );

説明

Apache::Session::Store::SybaseはApache::Sessionの格納インタフェースを完全に満たします。セッション・データはSybaseデータベースに格納されます。


スキーマ

このモジュールを使うためには、'sessions'というテーブルに少なくともこれらのカラムが必要です:

 id        CHAR(32)     # あるいはセッションIDの長さ分
 a_session IMAGE

このスキーマを作るために、isqlまたはsqshプログラムを使って以下のコマンドを実行することが出来ます:

 CREATE TABLE sessions (
    id         CHAR(32) not null primary key,
    a_session  IMAGE
 )
 go

もし他のコマンドを使うのであれば、テーブルのIDカラムにユニークなインデックスを作るのを忘れないで下さい。


コンフィグレーション

このモジュールはデータベースに接続するときに使われるデータソース、ユーザ名、パスワードを知る必要があります。これらの値はオプションのハッシュ(Apache::Sessionドキュメントをご覧下さい)を使って設定することが出来ます。そのオプションは以下の通りです:

DataSource
 
UserName
 
Password
 

例:

 tie %hash, 'Apache::Session::Sybase', $id, {
     DataSource => 'dbi:Sybase:database=db;server=server',
     UserName   => 'database_user',
     Password   => 'K00l',
     Commit     => 1,
 };

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

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

格納に渡すことが出来る追加の引数は以下の通りです:

Commit - すべての変更をコミットするかどうか;もしAutoCommitがTrueに設定されている既にオープンされているデータベース・ハンドルを渡すのであれば、これを設定する必要はありません。もしApache::Session::Store::Sybaseにデータベース・ハンドルを作らせるならば、この値をtrueにしなければいけません。そうでなければ変更は保存されません。
 
textsize - IMAGEフィールドの最大サイズを設定する'set textsize ' コマンドに渡さなければならない値。デフォルトは32K(少なくともSybase ASE 11.9.2では)
 

作者

(原文のまま)

This module was based on Apache::Session::Store::Oracle which was written by Jeffrey William Baker <jwbaker@acm.org>; it was modified by Chris Winters <chris@cwinters.com> to work with Apache::Session 1.5+ with changes from earlier version of Apache::Session::DBI::Sybase from Mark Landry <mdlandry@lincoln.midcoast.com>.


参考資料

Apache::Session


ホーム Perlの小技 Apache::Session

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