Einstellungen für Verbindungspool

Verwenden Sie diese Seite, um die Einstellungen für Verbindungspools zu konfigurieren.

Diese Seite der Administrationskonsole wird für eine Reihe von Ressourcentypen verwendet, wie z. B. JDBC-Datenquellen und Verbindungs-Factorys für JMS-Warteschlangen. Der Aufrufpfad dieser Seite ist zwar vom Typ der Ressource abhängig, aber im Allgemeinen wählen Sie eine Instanz des Ressourcenproviders und dann eine Instanz des Ressourcentyps aus. Anschließend klicken Sie auf Verbindungspool.
Fehler vermeiden: Das Verbindungs-Pooling wird in einem Anwendungsclient nicht unterstützt. Der Anwendungsclient ruft die Datenbank direkt und nicht über eine Datenquelle auf. Wenn Sie die getConnection()-Anforderung des Anwendungsclients verwenden möchten, konfigurieren Sie den JDBC-Provider in den Implementierungsdeskriptoren des Anwendungsclients mit Rational Application Developer (RAD) oder mit einem Assembliertool. Die Verbindung zwischen dem Anwendungsclient und der Datenbank wird hergestellt. Anwendungsclients haben keinen Verbindungspool, aber Sie können Einstellungen für den JDBC-Provider in den Implementierungsdeskriptoren des Clients konfigurieren. gotcha

Klicken Sie beispielsweise auf Ressourcen > JDBC > JDBC-Provider > JDBC-Provider > Datenquellen > Datenquelle > Eigenschaften des Verbindungspools.

Der Pfad für die JMS-Warteschlangenverbindungs-Factorys ist wie folgt: Ressourcen > JMS > Warteschlangenverbindungs-Factorys > JMS-Warteschlangenverbindungs-Factory > [Weitere Eigenschaften] Eigenschaften des Verbindungspools.

Register 'Konfiguration'

Verbindungszeitlimit

Das Intervall in Sekunden, nach dem das Zeitlimit für eine Verbindungsanforderung überschritten ist und eine ConnectionWaitTimeoutException ausgelöst wird.

Dieser Wert gibt an, wie lange (in Sekunden) eine Verbindungsanforderung wartet, wenn keine Verbindungen im Pool verfügbar sind und keine neuen Verbindungen erstellt werden können. weil der Wert für die maximale Anzahl der Verbindungen in einem bestimmten Verbindungspool erreicht ist.

Wenn das Verbindungszeitlimit beispielsweise auf 300 eingestellt ist und die maximale Anzahl der Verbindungen in Gebrauch ist, wartet der Poolmanager 300 Sekunden auf eine physische Verbindung. Sollte innerhalb dieser Zeit keine physische Verbindung verfügbar werden, löst der Poolmanager eine Ausnahme vom Typ ConnectionWaitTimeout aus. In den meisten Fällen ist davon abzuraten, die Methode "getConnection()" zu wiederholen. Falls eine längere Wartezeit erforderlich ist, sollten Sie den Wert für das Verbindungszeitlimit erhöhen. Wenn die Anwendung eine Ausnahme vom Typ ConnectionWaitTimeout abfängt, überprüfen Sie die erwartete Auslastung des Verbindungspools der Anwendung, und optimieren Sie den Verbindungspool und die Datenbank entsprechend.

Wenn das Verbindungszeitlimit auf 0 eingestellt ist, wartet der Poolmanager so lange, bis eine Verbindung verfügbar wird. Dies geschieht, wenn die Anwendung eine Transaktion abschließt und die Verbindung an den Pool zurückgibt oder wenn die Anzahl der Verbindungen unter den Wert von "Maximale Anzahl der Verbindungen" fällt, woraufhin eine neue physische Verbindung erstellt werden kann.

Wenn "Maximale Anzahl der Verbindungen" auf 0 eingestellt ist (die Anzahl der physischen Verbindungen ist nicht eingeschränkt), wird der Wert für das Verbindungszeitlimit ignoriert.

Datentyp Integer
Einheiten Sekunden
Standardeinstellung 180
Einstellmöglichkeiten 0 bis Maximalwert für int
Maximale Anzahl an Verbindungen

Die maximale Anzahl der physischen Verbindungen, die in diesem Pool erstellt werden können.

Diese Verbindungen stellen die physischen Verbindungen zur Back-End-Ressource dar. Wenn dieser Wert erreicht ist, werden keine neuen physischen Verbindungen mehr erstellt, und der Requester wartet, bis eine physische Verbindung, die gegenwärtig verwendet wird, in den Pool zurückgegeben oder die ConnectionWaitTimeoutException ausgelöst wird. Wenn z. B. die Maximalanzahl der Verbindungen auf 5 gesetzt wird und fünf physische Verbindungen verwendet werden, wartet der Poolmanager darauf, dass eine physische Verbindung frei wird. Die Wartezeit wird vom Zeitlimit für Verbindungen angegeben.

Wenn Sie die Anzahl der Verbindungspools kennen, die potenziell Verbindungen vom Back-End (z. B. von einer DB2-Datenbank oder einem CICS-Server) anfordern, können Sie einen Wert für die Eigenschaft "Maximale Anzahl der Verbindungen" festlegen.

[AIX Solaris HP-UX Linux Windows] [iSeries] Wenn Sie mehrere eigenständige Anwendungsserver haben, die dieselbe Datenquellenkonfiguration oder J2C-Verbindungs-Factory-Konfiguration verwenden, ist für jeden Server ein eigener physischer Verbindungspool vorhanden. Wenn Sie diese Anwendungsserver klonen, implementiert WebSphere Application Server für jeden Klon einen eigenen Verbindungspool.

[z/OS] Überlegen Sie, wie viele Servants zur Laufzeit auf dieselbe Ressource zugreifen. Dieser Wert ist der Multiplikator für Ihre Einstellung "Maximale Anzahl der Verbindungen". Wenn Servants dieselbe JDBC-Datenquellenkonfiguration oder J2C-Verbindungs-Factory-Konfiguration aufrufen, implementiert WebSphere Application Server einen entsprechenden physischen Verbindungspool für jeden Servant. Deshalb ist in jedem Servant derselbe Verbindungspool, wenn auch unabhängig von den anderen, vorhanden. Die Einstellung "Maximale Anzahl der Verbindungen" gilt für jeden dieser Pools.

[AIX Solaris HP-UX Linux Windows] [iSeries] Alle diese Verbindungspools gehören zu derselben Datenquellen- bzw. Verbindungs-Factory-Konfiguration. Deshalb können alle diese Verbindungspools potenziell gleichzeitig Verbindungen von derselben Back-End-Ressource anfordern. Der Wert für "Maximale Anzahl der Verbindungen", den Sie auf dieser Konsolseite definieren, gilt für jeden dieser Verbindungspools. Wenn Sie einen hohen Wert für "Maximale Anzahl der Verbindungen" festlegen, kann dies zu einer Unmenge von Verbindungsanforderungen führen, die von Ihrer Back-End-Ressource nicht zu bewältigen ist.

[z/OS] Potenziell können alle Anwendungen, die die Datenquelle oder Verbindungs-Factory in diesen Servants benötigen, gleichzeitig versuchen, die Ressource zu verwenden. Deshalb fordern die zugehörigen Verbindungspools gleichzeitig Verbindungen von demselben Back-End an. Legen Sie für "Maximale Anzahl der Verbindungen" keinen Wert Fest, der dazu führt, dass die Last der Verbindungsanforderungen Ihre Datenbank oder ein anderes Enterprise Information System (EIS) überfordert.

Datentyp Integer
Standardeinstellung 10
Einstellmöglichkeiten 0 bis Maximalwert für int

Wenn die Maximalanzahl der Verbindungen auf 0 eingestellt ist, wird das Zeitlimit für Verbindungen ignoriert.

Tipp: Wenn der Wert für die Größe des Verbindungspools unter der maximalen Anzahl an Verbindungen im Webcontainer liegt, wird ein besserer Durchsatz erreicht. Mit niedrigen Einstellungen, wie z. B. 10 bis 30 Verbindungen, erzielen Sie einen besseren Durchsatz als mit höheren Einstellungen wie 100 Verbindungen.

Mit dem Tivoli Performance Viewer können Sie die optimale Anzahl für die Verbindungen in einem Pool ermitteln. Falls die Anzahl gleichzeitiger Waiter größer als 0 ist, die CPU-Auslastung aber noch nicht 100 % erreicht hat, können Sie den Verbindungspool vergrößern. Ist der Wert für "Percent Used" bei normaler Arbeitslast dauerhaft niedrig, sollten Sie eine Reduzierung der Verbindungen im Pool in Erwägung ziehen.

Mindestanzahl an Verbindungen

Die Mindestanzahl der physischen Verbindungen, die verwaltet werden sollen.

Wenn die Größe des Verbindungspools kleiner-gleich der konfigurierten Mindestgröße für den Verbindungspool ist, verwirft der Thread "Zeitlimit für nicht verwendete Verbindungen" keine physischen Verbindungen. Allerdings erstellt der Pool keine Verbindungen, nur um sicherzustellen, dass die Mindestgröße des Verbindungspool erreicht ist. Wenn Sie einen Wert für "Zeitlimit für veraltete Verbindungen" festlegen, werden veraltete Verbindungen unabhängig von der konfigurierten Einstellung für die Mindestpoolgröße verworfen.

Wenn Mindestanzahl der Verbindungen beispielsweise auf 3 eingestellt ist und eine physische Verbindung erstellt wird, wird diese Verbindung nicht durch den Thread für das Zeitlimit für nicht verwendete Verbindungen verworfen. Der Thread erstellt nicht automatisch zwei zusätzliche physische Verbindungen über dasselbe Token, um den Wert für die Mindestanzahl der Verbindungen zu erreichen.

Datentyp Integer
Standardeinstellung 1
Einstellmöglichkeiten 0 bis Maximalwert für int
Bereinigungsintervall

Gibt das Intervall (in Sekunden) für die Ausführung des Threads für die Poolverwaltung an.

Wenn das Bereinigungsintervall z. B. auf 60 eingestellt ist, wird der Thread für Poolverwaltung alle 60 Sekunden ausgeführt. Das Bereinigungsintervall beeinflusst die Genauigkeit der Einstellungen "Zeitlimit für nicht verwendete Verbindungen" und "Zeitlimit für veraltete Verbindungen". Je kleiner das Intervall, desto höher die Genauigkeit. Wenn der Thread für Poolverwaltung aktiviert ist, muss der Wert für die Bereinigungszeit kleiner sein als die Werte für das Zeitlimit für nicht verwendete Verbindungen und das Zeitlimit für veraltete Verbindungen. Wenn der Thread für Poolverwaltung ausgeführt wird, werden alle Verbindungen, die länger als durch das Zeitlimit für nicht verwendete Verbindungen angegeben nicht verwendet wurden, gelöscht, bis der Wert für die "Mindestanzahl der Verbindungen" erreicht ist. Der Thread für Poolverwaltung löscht auch alle Verbindungen, die länger als durch den Wert für das Zeitlimit für veraltete Verbindungen angegeben aktiv waren.

Das Bereinigungsintervall wirkt sich auf die Leistung aus. Kleine Intervalle bedeuten, dass der Thread für Poolverwaltung häufiger ausgeführt wird und die Leistung verringert.

Möchten Sie den Thread für Poolverwaltung inaktivieren, müssen Sie das Bereinigungsintervall auf 0 einstellen bzw. sowohl das Zeitlimit für nicht verwendete Verbindungen als auch das Zeitlimit für veraltete Verbindungen auf 0 einstellen. Die empfohlene Methode zum Inaktivieren des Thread für Poolverwaltung besteht darin, das Bereinigungsintervall auf den Wert 0 einzustellen. In diesem Fall werden das Zeitlimit für nicht verwendete Verbindungen und das Zeitlimit für veraltete Verbindungen ignoriert. Wenn das Zeitlimit für nicht verwendete Verbindungen und das Zeitlimit für veraltete Verbindungen auf 0 eingestellt werden, wird der Thread für Poolverwaltung ausgeführt, es werden jedoch nur die physischen Verbindungen gelöscht, deren Zeitlimitüberschreitung auf der Grundlage von Zeitlimitwerten ungleich null erfolgt.

Datentyp Integer
Einheiten Sekunden
Standardeinstellung 180
Einstellmöglichkeiten 0 bis Maximalwert für int
Zeitlimit für nicht verwendete Verbindungen

Intervall in Sekunden, nach dem eine nicht verwendete oder inaktive Verbindung gelöscht wird.

Wenn Sie eine optimale Leistung erzielen möchten, stellen Sie das Zeitlimit für nicht verwendete Verbindungen höher ein als das Zeitlimit für die Bereinigung. Außerdem werden nicht verwendete physische Verbindungen nur verworfen, wenn die aktuelle Anzahl der nicht verwendeten Verbindungen die Mindestanzahl der Verbindungen übersteigt. Wenn z. B. das Zeitlimit für nicht verwendete Verbindungen auf 120 eingestellt ist und der Thread für Poolverwaltung aktiviert wurde (Bereinigungsintervall ungleich 0), werden alle physischen Verbindungen, die zwei Minuten nicht verwendet wurden, gelöscht.

Die Genauigkeit und Leistung dieses Zeitlimits wird durch den Wert für die Bereinigungszeit beeinflusst. Nähere Informationen enthält der Artikel Bereinigungsintervall.

Datentyp Integer
Einheiten Sekunden
Standardeinstellung 1800
Einstellmöglichkeiten 0 bis Maximalwert für int
Zeitlimit für veraltete Verbindungen

Intervall in Sekunden, nach dessen Ablauf eine physische Verbindung gelöscht wird.

Wird "Zeitlimit für veraltete Verbindungen" auf 0 eingestellt, können aktive physische Verbindungen unbegrenzt im Pool bleiben. Wenn Sie eine optimale Leistung erzielen möchten, stellen Sie das Zeitlimit für veraltete Verbindungen höher ein als das Zeitlimit für die Bereinigung.

Wenn das Zeitlimit für veraltete Verbindungen z. B. auf 1200 eingestellt und das Bereinigungsintervall nicht 0 ist, werden alle physischen Verbindungen, die 1200 Sekunden (20 Minuten) verwendet wurden, aus dem Pool gelöscht. Dies gilt jedoch nicht, wenn die Verbindung an einer Transaktion beteiligt ist. In diesem Fall löscht der Anwendungsserver die Verbindung nicht, wenn das Zeitlimit für veraltete Verbindung erreicht ist, sondern erst, nachdem die Transaktion abgeschlossen und die Verbindung geschlossen wurde.

Die Genauigkeit und Leistung dieses Zeitlimits wird durch den Wert für die Bereinigungszeit beeinflusst. Nähere Informationen enthält der Artikel Bereinigungsintervall.

Datentyp Integer
Einheiten Sekunden
Standardeinstellung 0
Einstellmöglichkeiten 0 bis Maximalwert für int
Löschrichtlinie

Gibt an, wie Verbindungen gelöscht werden sollen, wenn eine veraltete Verbindung oder ein schwer wiegender Verbindungsfehler ermittelt wird.

Die gültigen Werte sind EntirePool und FailingConnectionOnly.

Datentyp String
Standardeinstellungen
  • EntirePool für J2C-Verbindungs-Factorys und JMS-bezogene Verbindungs-Factorys
  • EntirePool für Datenquellen der WebSphere Version 4.0
  • EntirePool für Datenquellen der aktuellen Version, die Sie über die Administrationskonsole erstellen
  • EntirePool für Datenquellen der aktuellen Version, die Sie über wsadmin-AdminConfig-Befehle in der aktuellen Prozessumgebung ausführen und für die Sie dabei JDBC-Schablonen aufrufen, die in WebSphere Application Server integriert sind (weitere Informationen zum Befehl createUsingTemplate finden Sie im Artikel "Befehle für das Objekt AdminConfig" im Information Center
  • FailingConnectionOnly für Datenquellen, die Sie über wsadmin in der aktuellen Prozessumgebung ausführen, ohne JDBC-Schablonen aufzurufen
:
Einstellmöglichkeiten
EntirePool
Alle Verbindungen im Pool sind als veraltet markiert. Alle nicht verwendeten Verbindungen werden sofort geschlossen. Eine gerade verwendete Verbindung wird geschlossen, und während der nächsten Operation für diese Verbindung wird eine Ausnahme vom Typ StaleConnectionException ausgelöst. Nachfolgende getConnection()-Anforderungen seitens der Anwendung bewirken, dass neue Verbindungen zur Datenbank geöffnet werden. Wenn diese Löschrichtlinie verwendet wird, besteht ein geringes Risiko, dass einige Verbindungen im Pool geschlossen werden, obwohl sie nicht veraltet sind. Dies kommt jedoch nur selten vor. In den meisten Fällen ist die Einstellung "EntirePool" für Löschrichtlinien die beste Wahl.
Nur fehlgeschlagene Verbindung
Es wird nur die Verbindung, die die Ausnahme StaleConnectionException ausgelöst hat, geschlossen. Diese Einstellung schließt zwar die Möglichkeit aus, dass gültige Verbindungen unnötigerweise geschlossen werden, gestaltet aber die Wiederherstellung aus der Sicht einer Anwendung komplizierter. Da nur die gegenwärtig fehlerhafte Verbindung geschlossen wird, ist die Wahrscheinlichkeit, dass die nächste getConnection()-Anforderung seitens der Anwendung eine Verbindung aus dem Pool zurückgibt, die ebenfalls veraltet ist, relativ hoch.

Die Funktion für den Vorabtest von Verbindungen versucht, eine Anwendung vor ungültigen Verbindungen aus dem Pool zu schützen. Wenn eine Back-End-Ressource, wie beispielsweise eine Datenbank, herunterfährt, können ungültige Verbindungen im Pool freier Verbindungen vorhanden sein. Dies gilt insbesondere, wenn die Löschrichtlinie auf "failingConnectionOnly" eingestellt ist. In diesem Fall wird die fehlerhafte Verbindung aus dem Pool entfernt. Abhängig von der Art des Fehlers können die verbleibenden Verbindungen im Pool ungültig sein.




Mit (online) gekennzeichnete Links setzen einen Internet-Zugang voraus.

Zugehörige Konzepte
Zugehörige Tasks
Zugehörige Verweise
Funktionen auf den Seiten der Administrationskonsole


Dateiname: udat_conpoolset.html