first-

add a timestamp column to your db store. you're going to need to clean out old sessions somehow.

mysql> describe sessions;
+-----------+-------------+------+-----+-------------------+-------+
| Field     | Type        | Null | Key | Default           | Extra |
+-----------+-------------+------+-----+-------------------+-------+
| id        | varchar(32) |      | PRI |                   |       |
| time      | timestamp   | YES  |     | CURRENT_TIMESTAMP |       |
| a_session | text        | YES  |     | NULL              |       |
+-----------+-------------+------+-----+-------------------+-------+

second -

this is off of my code.  maybe this will help.

SiteUserClass:

        my $ApacheSessionOptions =      
           {
              'MySQL' =>
              {
                        DataSource => 'dbi:mysql:rs_session',
                        UserName   => 'rs_session_user',
                        Password   => 'rs_session_pass',
                        LockDataSource => 'dbi:mysql:rs_session',
                        LockUserName   => 'rs_session_user',
                        LockPassword   => 'rs_session_pass',
              }
           };

        constructor:
$this->{'ApacheSessionOptions'} = $ApacheSessionOptions-> {$ApacheSessionStore};

MyFramework Site User Base Class

        if      ( ${$this->{'ApacheSessionStore'}} eq 'MySQL' )
        {
DEBUG >0 && print STDERR "\nTying? Apache::Session::MySQL - $sessionID\n"; eval{ tie %{$this->{'__SESSION'}} , 'Apache::Session::MySQL', $sessionID, $this->{'ApacheSessionOptions'} } ;
                if ($@)
                {
                        $error = 1;
                        $sessionID = undef;
                }
        }


Thirdly-

you can either turn debugging on with the DBI. set tracelevel to 1 or 2. i don't know how to do that through apache::sesssion, you might be able to subclass the connect string. or set a general default for the DBI. i've just done it per handle on instantiation before. if you can do that, it helps a ton.

another option is to restart mysql and have it log all queries, then tail that log in a terminal window. i often do that on my dev box, and just run a cronjob to truncate the file every night. also helps a ton.

        

Reply via email to