![]() | Patrick's Programming Library Version 6.4.21 - Dokumentation |
Datenbank-Pool für multiple Datenbanken. Mehr ...
Öffentliche Methoden | |
PoolEx () | |
Konstruktor der Klasse. Mehr ... | |
~PoolEx () | |
Destruktor der Klasse. Mehr ... | |
void | CheckPool () |
Datenbank-Pools überprüfen. Mehr ... | |
void | ClearPools (bool free=true, bool used=false) |
Verbindungen in den Pools löschen. Mehr ... | |
int | CreatePool (int id, const char *name, CAssocArray &connect) |
Neuen Datenbank-Pool definieren. Mehr ... | |
int | CreatePool (int id, const char *name, CAssocArray &connect, CAssocArray &options) |
Neuen Datenbank-Pool definieren. Mehr ... | |
int | DeletePool (int id) |
Datenbank aus dem Pool löschen. Mehr ... | |
int | Destroy (Database *db) |
Datenbankverbindung löschen. Mehr ... | |
Database * | Get (const char *name, bool wait=false, int ms=0) |
Datenbank-Verbindung anhand ihres Namens aus dem Pool holen. Mehr ... | |
Database * | Get (int id=0, bool wait=false, int ms=0) |
Datenbank-Verbindung anhand ihrer ID aus dem Pool holen. Mehr ... | |
Pool * | GetPool (int id) |
Pool anhand seiner ID finden. Mehr ... | |
Pool * | GetPool (const char *name) |
Pool anhand seines Namens finden. Mehr ... | |
int | GetStatus (CAssocArray &status) |
Status sämtlicher Datenbank-Verbindungen auslesen. Mehr ... | |
int | Release (Database *db) |
Datenbankverbindung in den Pool zurückgeben. Mehr ... | |
int | SetDefaultGrow (int nr) |
Default Grow verändern. Mehr ... | |
int | SetDefaultKeepAlive (int seconds) |
Default KeepAlive verändern. Mehr ... | |
int | SetDefaultMax (int nr) |
Default Max verändern. Mehr ... | |
int | SetDefaultMaxSpare (int nr) |
Default MinSpare verändern. Mehr ... | |
int | SetDefaultMin (int nr) |
Default Min verändern. Mehr ... | |
int | SetDefaultMinSpare (int nr) |
Default MinSpare verändern. Mehr ... | |
int | SetDefaultOption (const CString &Name, const CString &Value) |
Pool-spezifische Option setzen. Mehr ... | |
int | SetDefaultOptions (CAssocArray &options) |
Default-Optionen für neue Pools anhand eines Assoziativen Arrays setzen. Mehr ... | |
int | SetDefaultTimeout (int seconds) |
Default Timeout verändern. Mehr ... | |
void | SetLogfile (CLog *log) |
Logging aktivieren. Mehr ... | |
int | SetPoolOption (int id, const CString &Name, const CString &Value) |
Option eines bestimmten Pools setzen. Mehr ... | |
int | SetPoolOptions (int id, CAssocArray &options) |
Optionen eines bestimmten Pools anhand eines assoziativen Arrays setzen. Mehr ... | |
int | StartPoolCheck (int intervall=10000) |
Überwachungsthread für den Pool starten. Mehr ... | |
int | StopPoolCheck () |
Überwachungsthread stoppen. Mehr ... | |
Private Methoden | |
Pool * | FindPoolByName (const char *name) |
Pool anhand seines Namens finden. Mehr ... | |
Private Attribute | |
CThread * | CheckThread |
Bei Aufruf der Funktion PoolEx::StartPoolCheck wird ein eigener Thread gestartet, dessen Pointer in dieser Variablen gespeichert wird. Mehr ... | |
int | DefaultGrow |
Gibt an, wieviele neue Connects gleichzeitig erstellt werden sollen, wenn keine freien Connects mehr im Pool sind oder PoolEx::DefaultMinSpare unterschritten wurde. Es wird immer mindestens eine neue Verbindung erstellt, aber nicht mehr als PoolEx::DefaultMaxSpare. Default: 1. Mehr ... | |
int | DefaultKeepAlive |
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 ... | |
int | DefaultMax |
Gibt an, wieviele Connects maximal geöffnet werden dürfen. Default: 0 (uneingeschränkt) Mehr ... | |
int | DefaultMaxSpare |
Gibt an, wieviele Freie Connects maximal vorgehalten werden sollen. Sind mehr Connects frei, werden diese nach erreichen des Timeouts abgebaut. Default: 0. Mehr ... | |
int | DefaultMin |
Gibt an, wieviele Connects mindestens im Pool enthalten sein sollen. Mehr ... | |
int | DefaultMinSpare |
Gibt an, wieviele Freie Connects minimal vorgehalten werden sollen. Default: 0. Mehr ... | |
int | DefaultTimeout |
Gibt an, nach welcher Zeit in Sekunden eine unbenutzte Verbindung abgebaut werden soll. Default: 300 (5 Minuten) Mehr ... | |
CLog * | Log |
Pointer auf eine Logklasse, der über die Funktion PoolEx::SetLogfile gesetzt wird. Enthält die Variable einen Wert != 0 ist das Logging aktiviert. Das Logging wird automatich an alle neuen Pools weitervererbt, die nach Aufruf der Funktion angelegt werden. Mehr ... | |
CMutex | Mutex |
Ein Muetx, der zur Gewährleistung der Threadsicherheit von allen Funktionen verwendet wird. Mehr ... | |
PoolTree | Pools |
Ein AVL-Baum, in dem die einzelnen Pools verwaltet werden. Als Schlüssel wird dabei die Id verwendet. Mehr ... | |
ppl6::db::PoolEx::PoolEx | ( | ) |
ppl6::db::PoolEx::~PoolEx | ( | ) |
void ppl6::db::PoolEx::CheckPool | ( | ) |
void ppl6::db::PoolEx::ClearPools | ( | bool | free = true , |
bool | used = false |
||
) |
[in] | free | Optionales Flag, was angibt, ob die freien Verbindungen gelöscht werden sollen (Default=true) |
[in] | used | Optionales Flag, was angibt, ob die benutzten Verbindungen gelöscht werden sollen. Es wird davon abgeraten, in Benutzung befindliche Verbindungen zu löschen, da es dadurch zum Programmabsturz oder unvorhersehbarem Verhalten kommen kann. (Default=false) |
int ppl6::db::PoolEx::CreatePool | ( | int | id, |
const char * | name, | ||
CAssocArray & | connect | ||
) |
[in] | id | Eindeutige ID der Datenbank. Ist eine ID bereits vorhanden, werden die alten Daten überschrieben. Die ID "0" hat eine besondere Bedeutung. Sie definiert quasi eine Default-Datenbank, die immer dann verwendet wird, wnn die Funktion Pool::Get ohne Parameter oder mit NULL aufgerufen wird. |
[in] | name | Ein eindeutiger Name für diese Datenbank. |
[in] | connect | Die Connect-Parameter in einem Assoziativen Array, wie sie von der Funktion ppl6::db::Connect unterstützt werden. |
int ppl6::db::PoolEx::CreatePool | ( | int | id, |
const char * | name, | ||
CAssocArray & | connect, | ||
CAssocArray & | options | ||
) |
[in] | id | Eindeutige ID der Datenbank. Ist eine ID bereits vorhanden, werden die alten Daten überschrieben. Die ID "0" hat eine besondere Bedeutung. Sie definiert quasi eine Default-Datenbank, die immer dann verwendet wird, wnn die Funktion Pool::Get ohne Parameter oder mit NULL aufgerufen wird. |
[in] | name | Ein eindeutiger Name für diese Datenbank. |
[in] | connect | Die Connect-Parameter in einem Assoziativen Array, wie sie von der Funktion ppl6::db::Connect unterstützt werden. |
[in] | options | Zusätzliche Optionen für den Pool in einem Assoziativen Array. Die Möglichen Optionen sind der Funktion PoolEx:SetPoolOptions zu entnehmen |
int ppl6::db::PoolEx::DeletePool | ( | int | id | ) |
[in] | id | Die Id des Datenbank-Pools, der gelöscht werden soll |
int ppl6::db::PoolEx::Destroy | ( | Database * | db | ) |
[in] | db | Pointer auf eine Datenbankverbindung. Diese muss zuvor mit der Funktion Pool::Get geholt worden sein. |
|
private |
Database * ppl6::db::PoolEx::Get | ( | const char * | name, |
bool | wait = false , |
||
int | ms = 0 |
||
) |
[in] | name | Pointer auf den Namen der Datenbank-Verbindung. Mit PoolEx::DefineDatabase muss zuvor eine passende Datenbank definiert worden sein. |
[in] | wait | Optionales Flag, das angibt, ob die Funktion warten soll, wenn das Maximum an Connects für diesen Pool bereits erreicht ist. |
[in] | ms | Ein optionaler Wert, der in Kombination mit dem wait-Flag angibt, wieviele Millisekunden gewartet werden soll, bevor mit einem Timeout abgebrochen wird. |
Database * ppl6::db::PoolEx::Get | ( | int | id = 0 , |
bool | wait = false , |
||
int | ms = 0 |
||
) |
[in] | id | ID der Datenbank, die mit Pool::DefineDatabase definiert wurde. |
[in] | wait | Optionales Flag, das angibt, ob die Funktion warten soll, wenn das Maximum an Connects für diesen Pool bereits erreicht ist. |
[in] | ms | Ein optionaler Wert, der in Kombination mit dem wait-Flag angibt, wieviele Millisekunden gewartet werden soll, bevor mit einem Timeout abgebrochen wird. |
Pool * ppl6::db::PoolEx::GetPool | ( | int | id | ) |
Pool * ppl6::db::PoolEx::GetPool | ( | const char * | name | ) |
[in] | name | Name des gesuchten Pools |
int ppl6::db::PoolEx::GetStatus | ( | CAssocArray & | status | ) |
status
gespeichert werden.[out] | status | Ein assoziatives Array, in dem der Status aller Connects gespeichert werden soll |
int ppl6::db::PoolEx::Release | ( | Database * | db | ) |
[in] | db | Pointer auf eine Datenbankverbindung. Diese muss zuvor mit der Funktion Pool::Get geholt worden sein. |
int ppl6::db::PoolEx::SetDefaultGrow | ( | int | nr | ) |
[in] | nr | Anzahl Connects |
int ppl6::db::PoolEx::SetDefaultKeepAlive | ( | int | seconds | ) |
[in] | seconds | Anzahl Sekunden, nach denen ein KeepAlive auftreten soll. |
int ppl6::db::PoolEx::SetDefaultMax | ( | int | nr | ) |
[in] | nr | Anzahl Connects. Ein Wert von 0 bedeutet "keine Limitierung". |
int ppl6::db::PoolEx::SetDefaultMaxSpare | ( | int | nr | ) |
[in] | nr | Anzahl Connects |
int ppl6::db::PoolEx::SetDefaultMin | ( | int | nr | ) |
[in] | nr | Anzahl Connects |
int ppl6::db::PoolEx::SetDefaultMinSpare | ( | int | nr | ) |
[in] | nr | Anzahl Connects |
[in] | Name | Ein String, der den Namen der Option enthält. |
[in] | Value | Ein String mit dem Wert der Option. |
int ppl6::db::PoolEx::SetDefaultOptions | ( | CAssocArray & | options | ) |
[in] | options | Ein Assoziatives Array mit den zu setzenden Default-Werten. Die möglichen Werte sind in der Funktion PoolEx::SetDefaultOption beschrieben. |
int ppl6::db::PoolEx::SetDefaultTimeout | ( | int | seconds | ) |
[in] | seconds | Anzahl Sekunden, nach denen der Timeout auftreten soll. |
void ppl6::db::PoolEx::SetLogfile | ( | CLog * | log | ) |
[in] | log | Pointer auf eine Klasse vom Typ CLog, um das Logging zu aktivieren, oder NULL um es zu deaktivieren. |
[in] | id | Die Id des gewünschten Pools |
[in] | Name | Ein String, der den Namen der Option enthält. |
[in] | Value | Ein String mit dem Wert der Option. |
int ppl6::db::PoolEx::SetPoolOptions | ( | int | id, |
CAssocArray & | options | ||
) |
[in] | id | Die Id des gewünschten Pools |
[in] | options | Ein Assoziatives Array mit zusätzlichen Optionen für die Verwaltung des Pools. Dieses kann folgende Werte enthalten:
|
int ppl6::db::PoolEx::StartPoolCheck | ( | int | intervall = 10000 | ) |
[in] | intervall | Ein Optionaler Parameter, der das Interavall in Millisekunden angibt, in dem die CheckPool-Funktion aufgerufen werden soll. Der Defauklt ist 10000 (=10 Sekunden) |
int ppl6::db::PoolEx::StopPoolCheck | ( | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |