NAME
Apache2::Translation::DB - A provider for Apache2::Translation
SYNOPSIS
<TranslationProvider DB>
Database dbi:mysql:dbname:host
User username
Password password
Singleton 1
Table tablename
Key keycolumn
Uri uricolumn
Block blockcolumn
Order ordercolumn
Action actioncolumn
Cachetbl cachetablename
Cachecol cachecolumn
Cachesize 1000
</TranslationProvider>
or
$provider=Apache2::Translation::DB->new(Database=>..., ...);
$provider->start;
$provider->stop;
DESCRIPTION
The DB provider implements the Apache2::Translation provider interface as documented in Apache2::Translation::_base. It provides for all optional functions. No additional functions are supported.
Parameters
- database DSN
-
a string describing a DBI database
- user NAME
- password PW
-
the user and password to use
- table NAME
-
names the translation table.
- key NAME
- uri NAME
- block NAME
- order NAME
- action NAME
- id NAME
- notes NAME
-
name the columns of the translation table to use. The
idandnotescolumns are necessary only in combination with the admin interface. Theidcolumn if specified must have a default value onINSERTgenerating unique keys, something likeautoincrementin MySQL ornextval('sequence')in PostgreSQL. - cachetbl NAME
- cachecol NAME
-
name the cache table and its column
- cachesize NUMBER|infinite
-
sets the maximum number of cached block lists, default is 1000.
If set to
infinitethe cache has no limits.A Tie::Cache::LRU cache is used.
Apache2::Translation::DBcaches database entries as lists of blocks. Each list of blocks consumes one cache entry.For each request first the following lookup is done:
SELECT MAX($cachecol) FROM $cachetblThe resulting value is then compared with the previous read value. If it has changed, it means the cache is invalid. If not, the cache is valid and if all information is found in the cache, no further database lookups are needed.
- singleton BOOLEAN
-
Normally,
Apache2::Translationtries to connect to the database at server startup. Then it inspects the database handle to see ifApache::DBIorApache::DBI::Cacheare loaded. If so, it will connect and disconnect for each translation phase / request, thus, put back the connection to the connection pool.If neither of them is loaded the DB connection is used as a singleton. It is connected once at server startup and then held open (and reconnected if dropped by the database server).
With the optional
singletonparameter you can decide to use a singleton connection even if a connection pool is in effect. If no connection pool is loaded, then of course settingsingletonto false has no effect.
SEE ALSO
- Apache2::Translation
- Apache2::Translation::BDB
- Apache2::Translation::File
- Apache2::Translation::_base
AUTHOR
Torsten Foertsch, <torsten.foertsch@gmx.net>
COPYRIGHT AND LICENSE
Copyright (C) 2005-2008 by Torsten Foertsch
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.