Here is the simplest form of the problem I can produce. I have two handlers and want to pass some info between them visa vi pnotes. One is a PerlTransHandler for Apache::SessionManager and the other is a PerlHandler for a simple Hello.pm that dumps some html with the current _session_start value (i.e. from pnotes). Apache::SessionManager checks to see if a session file exists, creates one if not, and updates pnotes appropriately.
The problem - if I request index.html there is no value in pnotes for _session_start as confirmed by Hello.pm. It seems that there is nothing in pnotes period. If after the request I manually inspect the session file created I find a value for _session_start. Request other pages (e.g. test.html) and there are expected pnotes entries confirmed by Hello.pm. Apache 1.3.27 mod_perl <httpd.conf snippet> #START mod_perl Configuration #---------------------------- PerlRequire conf/startup.pl PerlSetEnv MOD_PERL_TRACE all PerlSetEnv SERVER_ROOT /usr/local/apache/ #-------------------------- #END mod_perl Configuration #START Apache::SessionManager Configuration #------------------------------------------ PerlModule Apache::SessionManager PerlTransHandler Apache::SessionManager #---------------------------------------- #END Apache::SessionManager Configuration #START Block Directives #---------------------- <Location /> SetHandler perl-script PerlSetVar SessionManagerDebug 0 PerlSetVar SessionManagerTracking On PerlSetVar SessionManagerExpire 3600 PerlSetVar SessionManagerStore File PerlSetVar SessionManagerStoreArgs "Directory => /usr/local/apache/session, \ LockDirectory => /usr/local/apache/session/lock" </Location> <Directory "/usr/local/apache/htdocs"> <Files ~ "index.html$"> SetHandler perl-script PerlHandler MyApache::Hello </Files> <Files ~ "test.html$"> SetHandler perl-script PerlHandler MyApache::Hello </Files> </Directory> Alias /perl/ "/usr/local/apache/perl/" <Directory "/perl"> AllowOverride None Options +ExecCGI SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On </Directory> #-------------------- #END Block Directives </httpd.conf snippet> <Hello.pm> package MyApache::Hello; use strict; use Apache::Constants qw(:common); sub handler { my $r = shift; $r->content_type('text/html'); $r->send_http_header; my $host = $r->get_remote_host; my $href_session = $r->pnotes('SESSION_MANAGER_HANDLE'); unless ($href_session) { print STDERR "nada\n"; } my $sess_start = $href_session->{'_session_start'}; $r->print(<<END); <HTML> <HEAD> <TITLE>Hello There</TITLE> </HEAD> <BODY> <H1>Hello $host</H1> <H2>Sessoin Start: $sess_start</H2> </BODY> </HTML> END return OK; } 1; </Hello.pm>