Klasse zur Verwaltung von Datenbank-Verbindungen.
Mehr ...
|
| AssocArray | ConnectParam |
| | Enthält eine Kopie der Connect-Parameter, die über die Funktion Pool::SetConnectParams gesetzt werden. Mehr ...
|
| |
| std::list< Database * > | Free |
| | Eine Liste, die alle derzeit freien Datenbank-Connects enthält. Mehr ...
|
| |
| int | Grow |
| | Gibt an, wieviele neue Connects gleichzeitig erstellt werden sollen, wenn keine freien Connects mehr im Pool sind oder Pool::MinSpare unterschritten wurde. Es wird immer mindestens eine neue Verbindung erstellt, aber nicht mehr als Pool::MaxSpare. Default: 1. Mehr ...
|
| |
| String | Hash |
| | Ein MD5-Hash über die Connect-Parameter, der bei Aufruf der Funktion Pool::SetConnectParams gebildet wird. Mehr ...
|
| |
| int | Id |
| | Eine eindeutige Id, die bei Verwendung des Pools durch die Klasse PoolEx vergeben wird. Mehr ...
|
| |
| int | IdleTimeout |
| |
| bool | IsInit |
| | Wird auf true gesetzt, wenn die Connect-Parameter über die Funktion Pool::SetConnectParams übergeben wurden. Mehr ...
|
| |
| int | KeepAlive |
| | Gibt an, nach wieviel Sekunden ein Ping an eine freie Datenbank-Verbindung geschickt werden soll, um sicherzustellen, dass die Verbindung aufrecht erhalten bleibt. Ein Wert von 0 bedeutet, dass kein KeepAlive geschickt wird. Default: 60 (1 Minute). Mehr ...
|
| |
| double | LastCheck |
| | Wird von der Klasse PoolEx verwendet und enthält den Timestamp der letzten Überprüfung des Pools. Mehr ...
|
| |
| Logger * | Log |
| | Pointer auf eine Logklasse, der über die Funktion Pool::SetLogfile gesetzt wird. Enthält die Variable einen Wert != 0 ist das Logging aktiviert. Mehr ...
|
| |
| int | Max |
| | Gibt an, wieviele Connects maximal geöffnet werden dürfen. Default: 0 (uneingeschränkt) Mehr ...
|
| |
| int | MaxSpare |
| | Gibt an, wieviele Freie Connects maximal vorgehalten werden sollen. Sind mehr Connects frei, werden diese nach erreichen des Timeouts abgebaut. Default: 0. Mehr ...
|
| |
| int | Min |
| | Gibt an, wieviele Connects mindestens im Pool enthalten sein sollen. Mehr ...
|
| |
| int | MinSpare |
| | Gibt an, wieviele Freie Connects minimal vorgehalten werden sollen. Default: 0. Mehr ...
|
| |
| String | Name |
| | Der Name des Pools, der über die Funktion Pool::SetName festgelegt werden kann. Mehr ...
|
| |
| Mutex | PoolMutex |
| |
| std::list< Database * > | Used |
| | Eine Liste, die alle gerade in Verwendung befindlichen Datenbank-Connects enthält. Mehr ...
|
| |
- Include:
- #include <ppl7-db.h>
- Beschreibung:
- Mit dieser Klasse können beliebig viele Connects zu einer bestimmten Datenbank innerhalb eines Pools verwaltet werden.
- Verwendung:
- Bevor der Pool verwendet werden kann, muss er zunächst einmal wissen, welche Datenbank er verwenden soll. Dazu muss die Funktion SinglePool::setConnectParams mit den entsprechenden Parametern in einem assoziativen Array aufgerufen werden. Die möglichen Parameter sind dabei die gleichen, wie beim Aufruf der Funktion Database::connect.
- Nach der Initialisierung können anschließend mit der Funktion SinglePool::get Datenbank-Verbindungen aus dem Pool geholt werden (der Pool sorgt selbst dafür, dass neue Verbindungen automatisch erstellt werden) und mit SinglePool::release wieder in den Pool zurückgegeben werden. Mit SinglePool::destroy kann eine Verbindung auch gelöscht werden, was zum Beispiel dann sinnvoll ist, wenn die Anwendung festgestellt hat, dass irgendwas nicht in Ordnung ist.
- In regelmäßigen Abständen muß die Funktion SinglePool::checkPool aufgerufen werden. Die Funktion prüft die vorhandenen Verbindungen, löscht überflüssige Verbindungen oder baut neue auf, wenn nicht mehr genug freie im Pool vorhanden sind.
- Beispiel:
-
int DB_Pool_Example1() {
ppl6::CAssocArray param;
param.Set("type","sybase");
param.Set("host","database.example.com");
param.Set("port","1234");
param.Set("user","demo");
param.Set("password","demo");
param.Set("dbname","test");
ppl6::db::Pool Pool;
if (!Pool.SetConnectParams(param)) {
ppl6::PrintError();
return;
}
ppl6::db::Database *db=Pool.Get();
if (!db) {
ppl6::PrintError();
return;
}
...
if (!Pool.Release(db)) {
ppl6::PrintError();
return;
}
}
| ppl7::db::SinglePool::SinglePool |
( |
| ) |
|
| ppl7::db::SinglePool::~SinglePool |
( |
| ) |
|
| void ppl7::db::SinglePool::checkPool |
( |
| ) |
|
| void ppl7::db::SinglePool::clearFreePool |
( |
bool |
destroy = false | ) |
|
| void ppl7::db::SinglePool::clearUsedPool |
( |
bool |
destroy = false | ) |
|
| void ppl7::db::SinglePool::destroy |
( |
Database * |
db | ) |
|
| Database* ppl7::db::SinglePool::get |
( |
bool |
wait = false, |
|
|
int |
ms = 0 |
|
) |
| |
| void ppl7::db::SinglePool::getStatus |
( |
AssocArray & |
status | ) |
|
| Database* ppl7::db::SinglePool::newDB |
( |
| ) |
|
|
private |
| void ppl7::db::SinglePool::release |
( |
Database * |
db | ) |
|
| void ppl7::db::SinglePool::setConnectParams |
( |
const AssocArray & |
connect | ) |
|
| void ppl7::db::SinglePool::setGrowth |
( |
int |
num | ) |
|
| void ppl7::db::SinglePool::setId |
( |
int |
id | ) |
|
| void ppl7::db::SinglePool::setIdleTimeout |
( |
int |
seconds | ) |
|
| void ppl7::db::SinglePool::setKeepAliveIntervall |
( |
int |
seconds | ) |
|
| void ppl7::db::SinglePool::setLogger |
( |
Logger & |
logger | ) |
|
| void ppl7::db::SinglePool::setMaximumSize |
( |
int |
num | ) |
|
| void ppl7::db::SinglePool::setMaxSpare |
( |
int |
num | ) |
|
| void ppl7::db::SinglePool::setMinimumSize |
( |
int |
num | ) |
|
| void ppl7::db::SinglePool::setMinSpare |
( |
int |
num | ) |
|
| void ppl7::db::SinglePool::setName |
( |
const String & |
Name | ) |
|
| ppl7::db::SinglePool::ConnectParam |
|
private |
| ppl7::db::SinglePool::Free |
|
private |
| ppl7::db::SinglePool::Grow |
|
private |
| ppl7::db::SinglePool::Hash |
|
private |
| int ppl7::db::SinglePool::IdleTimeout |
|
private |
| ppl7::db::SinglePool::IsInit |
|
private |
| ppl7::db::SinglePool::KeepAlive |
|
private |
| ppl7::db::SinglePool::LastCheck |
|
private |
| ppl7::db::SinglePool::Log |
|
private |
| ppl7::db::SinglePool::Max |
|
private |
| ppl7::db::SinglePool::MaxSpare |
|
private |
| ppl7::db::SinglePool::Min |
|
private |
| ppl7::db::SinglePool::MinSpare |
|
private |
| ppl7::db::SinglePool::Name |
|
private |
| Mutex ppl7::db::SinglePool::PoolMutex |
|
private |
| ppl7::db::SinglePool::Used |
|
private |
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- /jenkins/jobs/clang_ppl7/workspace/include/ppl7-db.h
- /jenkins/jobs/clang_ppl7/workspace/src/database/Pool_SinglePool.cpp