Sie können Datenquellendefinitionen erweitern. Datenquellendefinitionen setzen sich aus Eigenschaften, die keine Kerneigenschaften sind, oder angepassten
Eigenschaften für DB2-Datenquellen zusammen und bieten
mehr Anwendungsflexibilität, wenn Sie den DB2 Universal JDBC Driver
oder den DB2 Using IBM® JCC Driver verwenden.
Diese Funktionalität wird manchmal auch als heterogenes Pooling bezeichnet. Verwenden Sie dieses Feature, um eine DB2-Datenquelle im Anwendungsserver mit
einem Kernsatz von Datenquelleneigenschaften zu erstellen, und definieren Sie alle angepassten Eigenschaften bzw. Eigenschaften,
die keine Kerneigenschaften sind, wie z. B. "currentSchema" oder "clientApplicationInformation", und die anwendungsspezifisch eingesetzt werden sollen, in den jeweiligen Anwendungen.
Sie können diese erweiterten Definitionen auch verwenden, um alle Nicht-Kerneigenschaften oder angepassten Eigenschaften
zu überschreiben, die bereits für die Datenquelle definiert wurden.
Außerdem kann dieses Feature die Anzahl physischer Verbindungen verringern, die der Anwendungsserver verwendet, indem Sie einen Verbindungspool
zwischen Ressourcen einsetzen, die Verbindungen zu derselben Datenquelle herstellen.
Vorbereitende Schritte
Sie müssen eine DB2-Datenquelle verwenden, und die Datenquelle muss im Anwendungsserver mit einem der folgenden
JDBC-Provider konfiguriert sein:
- DB2 Universal
JDBC Driver (Version 4.3.81 oder höher)
- DB2 Using IBM JCC
Driver (Version 3.53.65 oder höher)
Informationen zu diesem Vorgang
Ordnen Sie Nicht-Kerneigenschaften anderen Ressourcenreferenzen für eine Datenquelle
zu, und konfigurieren Sie Ihre Anwendungen so, dass sie diese Ressourcenreferenzen nutzen, um alle Nicht-Kerneigenschaften für die Datenquelle zu erweitern oder zu überschreiben.
Sie können neue Nicht-Kerneigenschaften oder angepasste Eigenschaften definieren oder Nicht-Kerneigenschaften überschreiben, die bereits für die Datenquelle definiert sind.
Anwendungen können auch den denselben Verbindungspool im Anwendungsserver nutzen, selbst wenn jede Anwendung einen eigenen Satz von Datenquelleneigenschaften besitzt.
Möglicherweise ist nur eine einzige Datenquelle im Anwendungsserver definiert und damit auch nur ein einziger Verbindungspool, aber für die einzelnen Anwendungen scheint es so,
als wären mehrere Datenquellen definiert.
Dies kann folgende Auswirkungen haben:
- Die Speicherbelegung durch den Anwendungsserver reduziert sich. Datenquellendefinitionen entsprechen
einem einzigen Verbindungspool. Somit gibt es im Vergleich zur Datenquellendefinitionen, die jeweils einem eigenen Verbindungspool entsprechen,
weniger weniger Objekte im Hauptspeicher.
- Die Anzahl offener Verbindungen zur Datenquelle reduziert sind, was eine verringerte Speicherbelegung durch die Datenquelle zur Folge haben kann.
Der Anwendungsserver kann die Anzahl inaktiver Verbindungen reduzieren, indem er einen einzigen Verbindungspool bereitstellt,
der mehreren Datenquellen entspricht, was eine effizientere Nutzung der Verbindungen zur Folge hat.
- Es werden zweiphasige Commit-Transaktionen (XA) in bestimmten DB2-Szenarien vermieden, wenn Ihre Anwendungen das
Muster "Verbindung abrufen/Verbindung verwenden/Verbindung schließen" verwenden.
Der Anwendungsserver kann Verbindungen für mehrere Ressourcenreferenzen, die dieselben
Kerneigenschaften, aber möglicherweise unterschiedliche Nicht-Kerneigenschaften haben,
in derselben Transaktion gemeinsam nutzen.
Durch dieses Verhalten kann eine zweiphasige Commit-Verarbeitung vermieden werden, wenn die gemeinsame Nutzung von Verbindungen
den Anwendungsserver dazu veranlasst, nur eine einzige physische Verbindung zu verwenden.
Vorgehensweise
- Aktualisieren Sie die Datenquellendefinitionen für eine bereits installierte Anwendung.
- Navigieren Sie zu der Anzeige für die Verwaltung der Ressourcenreferenzen für die Anwendung.
- Navigieren Sie zu der Anzeige für die erweiterten Datenquelleneigenschaften. Wählen Sie eine Ressource in der Liste aus, und klicken Sie auf Erweiterte Eigenschaften.... Wenn die
Datenquelle keine erweiterten Datenquelleneigenschaften unterstützt, wird ein Fehler angezeigt, wenn Sie versuchen, diese Änderungen anzuwenden.
- Fügen Sie eine oder mehrere angepasste Eigenschaften für erweiterte Datenquellen hinzu, die speziell für diese Zielressource gelten. Klicken Sie auf Neu, und füllen Sie die erforderlichen Felder aus.
Wiederholen Sie diesen Schritt für jede Eigenschaft, mit der Sie die Datenquelle erweitern möchten. Klicken Sie abschließend auf OK, um zur vorherigen Anzeige zurückzukehren. Die folgenden Datenquelleneigenschaften, die für alle Anwendungen, die diese Datenquelle verwenden, dieselben sein müssen, können nicht geändert werden:
- accountingInterval
- dataSourceName
- databaseName
- kerberosServerPrincipal
- loginTimeout
- logWriter
- password
- pkList
- planName
- portNumber
- readOnly
- securityMechanism
- serverName
- user
- Optional: Konfigurieren Sie zwei Ressourcenreferenzen und die Isolationsstufe in der Datei "ibm-ejb-jar-ext.xml".
- Erstellen Sie während der Installation Datenquellendefinitionen für eine Anwendung.
- Navigieren Sie zu der Anzeige für die Zuordnung der Ressourcenreferenzen für die Anwendung. Wählen Sie den Installationsschritt Ressourcen Ressourcenreferenzen zuordnen aus, und befolgen Sie die Schritte b und c von Schritt 1, in denen beschrieben wird, wie die Datenquellendefinitionen für eine Anwendung aktualisiert werden, die bereits installiert ist.
- Optional: Zur Vermeidung von zweiphasigen Commit-Transaktionen verwenden Sie das Muster "Verbindung abrufen/Verbindung verwenden/Verbindung schließen". Das Muster "Verbindung abrufen/Verbindung verwenden/Verbindung schließen" bewirkt, dass eine Anwendung
von einer Datenquelle oder Verbindungsfactory abruft, die aktuellen Arbeiten in einer einzigen Methode ausführt
und keine weitere Methode aufruft, bis diese Arbeiten abgeschlossen sind.
- Stellen Sie sicher, dass Ihre Anwendungen das Muster "Verbindung abrufen/Verbindung verwenden/Verbindung schließen" verwenden.
- Konfigurieren Sie den Anwendungsserver so, dass er die Verwendung des Musters "Verbindung abrufen/Verbindung verwenden/Verbindung schließen"
in Anwendungen prüft, sodass die zweiphasige Commit-Verarbeitung vermieden wird, falls die gemeinsame Nutzung zur Verwendung einer einzigen physischen Verbindung führt.
- Klicken Sie auf
.
- Wählen Sie Für Verbindungsmuster 'Abrufen/Verwenden/Schließen' mit heterogenem Pooling optimieren aus. Es werden
Fehlernachrichten angezeigt, wenn Sie diese Option auswählen und Ihre Anwendungen das Muster "Verbindung abrufen/Verbindung verwenden/Verbindung schließen" nicht verwenden.
- Optional: Heterogenes Pooling ist standardmäßig aktiviert.
Unter bestimmten Umständen kann es empfehlenswert sein, das heterogene Pooling für eine Datenquelle zu inaktivieren.
Zum Inaktivieren dieser Pooling-Unterstützung kann eine angepasste Datenquelleneigenschaft definiert werden.
Die angepasste Datenquelleneigenschaft hat den Namen enableHeterogeneousPooling.
Wenn enableHeterogeneousPooling nicht für eine Datenquelle definiert wird oder wenn diese Eigenschaft
für eine Datenquelle existiert und den Wert true hat, ist heterogenes Pooling aktiviert.
Wenn enableHeterogeneousPooling für eine Datenquelle definiert ist und den Wert
false hat, ist heterogenes Pooling inaktiviert. Gehen Sie wie folgt vor, um
enableHeterogeneousPooling für eine Datenquelle zu definieren und heterogenes Pooling zu inaktivieren:
- Klicken Sie auf Ressourcen > JDBC-Provider > JDBC-Provider.
- Klicken Sie unter "Weitere Eigenschaften" auf Datenquellen.
- Klicken Sie auf den Namen der Datenquelle.
- Erstellen Sie die angepasste Eigenschaft enableHeterogeneousPooling.
- Klicken Sie auf Neu.
- Geben Sie enableHeterogeneousPooling im Feld "Name" ein.
- Geben Sie false im Feld "Wert" ein, um anzugeben, dass
heterogenes Pooling inaktiviert werden soll.
- Klicken Sie auf Anwenden und Speichern.