[PHP-users 4751] Re: PHPlib:マルチログイン防止をガーベッジコレクションで対応するべきか

vantest php-users@php.gr.jp
Wed, 16 Jan 2002 19:54:46 +0900


バンテストです。

> これは,ログアウトとしても active_sessions のレコードが消えないという
> ことですか? 試しに,session クラスで,
>   var $gc_time  = 1;
>   var $gc_probability = 100;
> のような設定をすると,ログアウトしてから1分以上経って別なセッションを
> 開始すると古いセッションレコードが消えました.もちろんDBはPostgreSQLで
> す(というか,コンテナに使用するRDBの種類によらず,GC機構はちゃんと働く
> はずです).
>
> こういう話ではない?

セッションレコードに対するGC機構は動作しています。
別なセッションを開始すると古いセッションレコードが消えます。
具体的には「active_sessions 」テーブルにおいて、nameフィールドが
「Example_Session」の
古いレコードだけが消えます。
ところがnameフィールドが「Example_User」のレコードはそのまま残っています。
「Example_User」のレコードは認証が成功したタイミングでテーブルに記録されま
す。
いつまで経っても消えないので、GC機構にこのレコードを削除する機構を新たに組み
入れ
ようと考えている訳です。
石井さまのサーバーではいかがでしょうか。
本来であれば、この「Example_User」のレコードもGC機構で削除されるのでしょう
か。
そうであればGC機構へ新たに削除機構を追加する必要がなくなりますが、現実には
削除されないのです。
参考までに次が私のサーバーにインストールされているバージョンです。
インストールされているバージョンに関係ありますか?
PHP     →    4.0.3p11
PHPLib →    7.2d