The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Apache::Session::Postgres - An implementation of Apache::Session


 use Apache::Session::Postgres;

 #if you want Apache::Session to open new DB handles:

 tie %hash, 'Apache::Session::Postgres', $id, {
    DataSource => 'dbi:Pg:dbname=sessions',
    UserName   => $db_user,
    Password   => $db_pass,
    Commit     => 1

 #or, if your handles are already opened:

 tie %hash, 'Apache::Session::Postgres', $id, {
    Handle => $dbh,
    Commit => 1


This module is an implementation of Apache::Session. It uses the Postgres backing store and no locking. See the example, and the documentation for Apache::Session::Store::Postgres for more details.


The special Apache::Session argument for this module is Commit. You MUST provide the Commit argument, which instructs this module to either commit the transaction when it is finished, or to simply do nothing. This feature is provided so that this module will not have adverse interactions with your local transaction policy, nor your local database handle caching policy. The argument is mandatory in order to make you think about this problem.


This module was written by Jeffrey William Baker <>.


Apache::Session::File, Apache::Session::Flex, Apache::Session::DB_File, Apache::Session::Postgres, Apache::Session