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

Tatsuo Ishii php-users@php.gr.jp
Wed, 16 Jan 2002 22:48:32 +0900


石井です.

> セッションレコードに対するGC機構は動作しています。
> 別なセッションを開始すると古いセッションレコードが消えます。
> 具体的には「active_sessions 」テーブルにおいて、nameフィールドが
> 「Example_Session」の
> 古いレコードだけが消えます。

ちょっと本題とは外れますが...ご存じとは思いますが,"Example_Session"の
"Example"は別にExampleのまま使う必要はありません.というか,実務で使う
場合には積極的に別の名前にした方が良いと思います.

> ところがnameフィールドが「Example_User」のレコードはそのまま残っています。
> 「Example_User」のレコードは認証が成功したタイミングでテーブルに記録されま
> す。
> いつまで経っても消えないので、GC機構にこのレコードを削除する機構を新たに組み
> 入れ
> ようと考えている訳です。
> 石井さまのサーバーではいかがでしょうか。
> 本来であれば、この「Example_User」のレコードもGC機構で削除されるのでしょう
> か。

ああなるほど.Userクラスを使っているのですね.私自身はUserクラスは使っ
たことはありませんが,Userクラスはセッション単位ではなく,セッションを
越えて持続するデータを保存するものですから,GCで消えないのは当然だと思
います.

> そうであればGC機構へ新たに削除機構を追加する必要がなくなりますが、現実には
> 削除されないのです。
> 参考までに次が私のサーバーにインストールされているバージョンです。
> インストールされているバージョンに関係ありますか?
> PHP     →    4.0.3p11
> PHPLib →    7.2d

私は PHP 4.1.1,PHPLib 7.4-pre1 ですが,このあたりは変っていないように
思います.
--
Tatsuo Ishii