Unterstützung der Cursoroffenhaltung in JDBC-Anwendungen

Das Feature "Cursoroffenhaltung" kann den Systemaufwand für JDBC-Interaktionen mit Ihrer relationalen Datenbank verringern und auf diesem Wege zu einer Steigerung des Anwendungsdurchsatzes beitragen.

Wenn Sie die Cursoroffenhaltung aktivieren, bleibt eine Ergebnisliste über die Transaktionsgrenzen hinaus für mehrere JDBC-Aufrufe verfügbar. Die Einstellung für die Offenhaltung bewirkt, dass ein Datenbankcursor neu aktualisierte Zeilen auch nach dem Festschreiben der Transaktion, die die neuen Werte oder die neue Ergebnisliste generiert hat, aktiv hält. Damit macht der Cursor die Ergebnisliste für Anweisungen in einer nachfolgenden Transaktion verfügbar.

Cursoroffenhaltung festlegen

Verwenden Sie eine der folgenden Verfahren, um die Cursoroffenhaltung festzulegen. Ausführliche Informationen finden Sie in der Spezifikation JDBC 3.0 auf der Website von Oracle unter der Adresse http://www.oracle.com/technetwork/java/index.html.
  • Geben Sie den Parameter ResultSet.HOLD_CURSORS_OVER_COMMIT an, wenn Sie mit der Methode createStatement, prepareStatement oder prepareCall eine Anweisung erstellen.
  • Rufen Sie für das Connection-Objekt die Methode setHoldability auf. Der Cursoroffenhaltungswert, den Sie mit dieser Methode setzen, wird als Standardwert verwendet. Falls Sie die Cursoroffenhaltung für das Statement-Objekt angeben, überschreibt dieser Wert den für die Verbindung angegebenen.

    Für eine gemeinsam nutzbare Verbindung können Sie keine Cursoroffenhaltung angeben, nachdem diese Verbindung von einem zweiten Handle referenziert wurde. Wenn Sie die Offenhaltungsmethode zu diesem Zeitpunkt aufrufen, wird eine Ausnahme generiert. Falls Sie die Satz für eine gemeinsam nutzbare Verbindung festlegen möchten, rufen Sie die Methode auf, bevor die Verbindung registriert wird. Andernfalls behält die gemeinsam nutzbare Verbindung den für die vorherige Registrierung gültigen Offenhaltungswert bei.

  • Überprüfen Sie anhand der Datenbankdokumentation, ob das Produkt die Cursoroffenhaltung als Eigenschaft für Datenquellen unterstützt. DB2 reagiert beispielsweise auf den Auslöser für Offenhaltung, wenn Sie ihn als angepasste Eigenschaft der Datenquelle festlegen. Weitere Informationen finden Sie im Artikel "Einstellungen angepasster Eigenschaften".

Auswirkungen des Verbindungs- und Transaktionsverhaltens auf die Cursoroffenhaltung

Die Festlegung der Cursoroffenhaltung in WebSphere Application Server führt bei verschiedenen Transaktionsereignissen zu folgendem Verhalten:
  • Wenn eine Verbindung geschlossen wird, werden trotz gesetzter Cursoroffenhaltung alle Anweisungen und Ergebnislisten geschlossen.
  • Wenn eine Transaktion zurückgesetzt wird, werden trotz gesetzter Cursoroffenhaltung alle Ergebnislisten geschlossen.
  • Wenn eine lokale Transaktion festgeschrieben wird, können gemeinsam nutzbare und nicht gemeinsam nutzbare Verbindungen eine Ergebnisliste über eine Transaktionsgrenze hinaus offen halten.
  • Wenn eine globale Transaktion festgeschrieben wird, können nicht gemeinsam nutzbare Verbindungen eine Ergebnisliste über eine Transaktionsgrenze hinaus offen halten. Bei gemeinsam nutzbaren Verbindungen werden die Anweisungen und Ergebnislisten selbst dann geschlossen, wenn Sie die Cursoroffenhaltung definiert haben. Der Wert für die Offenhaltung hat keine Auswirkung auf gemeinsam nutzbare Verbindungen, die an globalen Transaktionen teilnehmen.
  • Wenn ein lokaler Transaktionsbereich endet, werden auf Methodenebene oder ActivitySession-Ebene alle Anweisungen und Ergebnislisten für gemeinsam nutzbare Verbindungen geschlossen. Für nicht gemeinsam nutzbare Verbindungen bleiben die Anweisungen und Ergebnislisten offen, bis für die Verbindung die Methode "close" aufgerufen wird.
Anmerkung: Bei einer globalen Transaktion mit einer nicht gemeinsam nutzbaren Verbindung muss die Back-End-Datenbank die Cursoroffenhaltung unterstützen.

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



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