Verbindungspools

Mit Hilfe von Verbindungspools kann sowohl der Systemaufwand für die Verbindungsverwaltung vermindert als auch die Zahl der Entwicklungstasks für den Datenzugriff verringert werden.

Wenn eine Anwendung versucht, auf einen Back-End-Datenspeicher (z. B. eine Datenbank) zuzugreifen, benötigt sie jedes Mal Ressourcen zur Erstellung, Aufrechterhaltung und zum Trennen einer Verbindung zu diesem Datenspeicher. Um den Aufwand zu verringern, den dieser Prozess bei allen Anwendungsressourcen verursachen kann, gibt Application Server Administratoren die Möglichkeit, einen Pool von Back-End-Verbindungen einzurichten, die von allen Anwendungen in einem Anwendungsserver gemeinsam genutzt werden können. Beim Verbindungspooling wird der Systemaufwand für die Verbindungen auf mehrere Benutzeranforderungen verteilt. Die Anwendungsressourcen werden dabei für zukünftige Anforderungen "geschont".

Der Anwendungsserver unterstützt die APIs für JDBC 4.0 und damit die Verwendung von Verbindungspools und die Wiederverwendung von Verbindungen. Der Verbindungspool wird für die Übertragung von JDBC-Aufrufen innerhalb der Anwendung genutzt, aber auch für Enterprise-Beans, die die Datenbank verwenden.

Vorteile des Verbindungspooling

Das Verbindungspooling kann die Antwortzeiten von Anwendungen, die Verbindungen anfordern (insbesondere webbasierte Anwendungen), verkürzen. Wenn ein Benutzer über das Web eine Anforderung an eine Ressource sendet, greift die Ressource auf eine Datenquelle zu. Da Benutzer Verbindungen zu Anwendungen im Internet häufig herstellen und wieder trennen, können die Datenzugriffsanforderungen ein beträchtliches Ausmaß annehmen. Die Folge ist, dass der Gesamtaufwand für den Datenspeicher für webbasierte Anwendungen rasch zunimmt und die Leistung abnimmt. Bei Verwendung von Verbindungspools können jedoch bei Webanwendungen Durchsatzsteigerungen bis auf das Zwanzigfache des normalen Durchsatzes erreicht werden.

Wenn Sie mit Verbindungspooling arbeiten, entfällt bei den meisten Benutzeranforderungen der Systemaufwand für das Erstellen einer neuen Verbindung, weil die Datenquelle eine vorhandene Verbindung im Verbindungspool finden und verwenden kann. Wenn die Anforderung abgeschlossen ist und die Antwort an den Benutzer zurückgegeben wird, gibt die Ressource die Verbindung an den Verbindungspool zurück, damit sie erneut verwendet werden kann. Somit wird der Systemaufwand für ein Trennen der Verbindung vermieden. Jede Benutzeranforderung verursacht nur einen Bruchteil der Kosten, die durch das Herstellen und Trennen einer Verbindung entstehen. Nachdem der Verbindungspool mit den Ausgangsressourcen erstellt wurde, fällt der Systemaufwand für die Verbindungen kaum noch ins Gewicht, da die bereits bestehenden Verbindungen ständig wieder verwendet werden.

Entscheidung über die Verwendung des Verbindungspooling

Verwenden Sie das Verbindungspooling in einer Anwendung, die eines der folgenden Kriterien erfüllt:

  • Sie kann den Systemaufwand für das Anfordern und Freigeben von Verbindungen nicht zulassen.
  • Sie erfordert JTA-Transaktionen (JTA = Java™ Transaction API) in Application Server.
  • Mehrere Benutzer in einer Transaktion müssen Verbindungen gemeinsam nutzen können.
  • Sie muss die Produktfunktionen zum Verwalten lokaler Transaktionen im Anwendungsserver nutzen können.
  • Sie verwaltet keinen Pool ihrer eigenen Verbindungen.
  • Sie verwaltet keine detaillierten Daten zum Herstellen einer Verbindung, wie z. B. den Datenbankname, den Benutzername oder das Kennwort.
Fehler vermeiden Fehler vermeiden: Das Verbindungspooling 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 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

So werden Verbindungen zu einem Pool zusammengefasst

Wenn Sie eine eindeutige Datenquelle oder Verbindungsfactory konfigurieren, müssen Sie ihr einen eindeutigen JNDI-Namen (Java Naming and Directory Interface) zuweisen. Verwenden Sie diesen Namen zusammen mit den Konfigurationsdaten, um einen Verbindungspool zu erstellen. Für jede konfigurierte Datenquelle oder Verbindungsfactory existiert ein eigener Verbindungspool.

Außerdem wird in jedem Anwendungsserver, der die Datenquelle oder die Verbindungsfactory verwendet, eine separate Instanz des Verbindungspools erstellt. Beispiel:
  • [AIX Solaris HP-UX Linux Windows][IBM i]Wenn Sie einen Cluster mit drei Servern ausführen, in dem alle Server meineDatenquelle verwenden und für meineDatenquelle der Wert 10 als maximale Anzahl der Verbindungen definiert ist, können Sie bis zu 30 Verbindungen generieren (3 Server mal 10 Verbindungen).
  • [z/OS]In einem Cluster enthalten drei z/OS-Controller jeweils drei Servants, die meineDatenquelle verwenden, und Sie können für den Verbindungspool, den Application Server für jede Instanz von meineDatenquelle erstellt, eine maximale Verbindungsanzahl von 10 festlegen. Daher können Sie bis zu 90 Verbindungen (9 Servants mal 10 Verbindungen) generieren.

Bedenken Sie, welche Auswirkungen dieses Verhalten auf die Anzahl der Verbindungen hat, die Ihre Back-End-Ressource unterstützen kann. Weitere Informationen finden Sie im Artikel "Einstellungen des Verbindungspools".

[AIX Solaris HP-UX Linux Windows][IBM i]Weitere Hinweise zum Bestimmen der optimalen Einstellung für die maximale Anzahl von Verbindungen:
  • Jede Transaktion einer Entity-Bean erfordert eine zusätzliche Datenbankverbindung, die für die Bearbeitung dieser Transaktion zuständig ist.
  • Wenn mit Klonen gearbeitet wird, gibt es für jeden Klon einen Datenpool.
  • [AIX][HP-UX][Solaris]Auf unterstützten UNIX-Plattformen wird für jede Verbindung ein separater DB2-Prozess erstellt. Diese Prozesse können auf Systemen mit wenig Speicher schnell die Leistung beeinträchtigen und Fehler verursachen.

Bedenken Sie bei der gemeinsamen Benutzung von Verbindungen außerdem, dass nur Verbindungen gemeinsam genutzt werden können, die aus demselben Verbindungspool stammen.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_conpool
Dateiname:cdat_conpool.html