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
id
andnotes
columns are necessary only in combination with the admin interface. Theid
column if specified must have a default value onINSERT
generating unique keys, something likeautoincrement
in 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
infinite
the cache has no limits.A Tie::Cache::LRU cache is used.
Apache2::Translation::DB
caches 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 $cachetbl
The 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::Translation
tries to connect to the database at server startup. Then it inspects the database handle to see ifApache::DBI
orApache::DBI::Cache
are 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
singleton
parameter 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 settingsingleton
to 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.