pureQuery im dynamischen und im statischen Modus für DB2 und Informix verwenden

IBM® Optim PureQuery Runtime bietet JPA-Benutzern (Java™ Persistence API) eine Alternative für den Zugriff auf DB2- und Informix-Datenbanken. IBM Optim PureQuery Runtime unterstützt statische Structured Query Language (SQL).

Vorbereitende Schritte

Wichtig: "batchLimit" ist eine konfigurierbare Eigenschaft. Der Standardwert für DB2 ist 100, der Standardwert für Informix ist 0. Wenn Sie "batchLimit" auf 0 setzen, findet kein Stapelbetrieb statt. Damit eine Anwendung den heterogenen Stapelbetrieb für das Informix-Datenbank-Back-End ausführen kann, wird "batchLimit" in der Datei persistence.xml konfiguriert. "batchLimit" wird z. B. wie folgt auf 100 gesetzt:
<property name="openjpa.jdbc.DBDictionary" value="batchLimit=100"/> 

Informationen zu diesem Vorgang

Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 bietet Unterstützung für IBM Optim PureQuery Runtime 2.2.0.2 und höher. Das neue Feature, das für IBM Optim PureQuery Runtime 2.2.0.3 hinzugefügt wurde, ermöglicht Informix- und DB2-Anwendungen die Verwendung von pureQuery im dynamischen Modus (DYNAMIC).

Hierfür muss pdqProperties in der Datenquelle in der Java EE-Umgebung (Java Enterprise Edition) bzw. in der Verbindungs-URL in der Java SE-Umgebung (Java Standard Edition) definiert werden.

Wenn pdqProperties nicht definiert ist, wird pureQuery im kompatiblen Modus ausgeführt, d. h., dass die Datei mit der Erweiterung pdqxml in den JAR-Dateien der (Java-Archiv) gepackt wird.

Das Information Center von IBM Integrated Data Management enthält verschiedene Artikel zu "pdqProperties".

Vorgehensweise

  1. Wenn Sie eine Datenquelle in einer Java EE-Umgebung definieren, müssen Sie eine angepasste Eigenschaft "pdqProperties" hinzufügen und einen Zeichenfolgewert für gültige Eigenschaften von IBM Optim PureQuery Runtime setzen. In der folgenden Tabelle wird anhand eines Beispiels veranschaulicht, wie executionMode(DYNAMIC) den dynamischen Modus von pureQuery verwenden kann. Jede gültige Eigenschaft von IBM Optim PureQuery Runtime kann für die dynamische Ausführung definiert werden. Wenn pdqProperties die pureQuery-XML-Eigenschaft (pdqxml-file-location) enthält, verwendet IBM Optim PureQuery Runtime die SQL im statischen Modus, der in der pdqxml-Datei definiert ist. Diese pureQueryXML-Eigenschaft enthält die Position der Datei mit der Erweiterung "pdqxml".
    Achtung: Voraussetzung ist, dass die Datei mit der Erweiterung "pdqxml" zuvor an die Datenbank gebunden wird.
    Tabelle 1. Beispiele für pdqProperties-Einstellungen für DB2 und Informix . Beispiele für pdqProperties-Einstellungen für DB2 und Informix
    pdqProperties= DB2-Back-End Informix
    executionMode(DYNAMIC) dynamische Ausführung dynamische Ausführung
    executionMode(STATIC),pureQueryXML(c:/temp/ItemEJB.pdqxml)
    Achtung: Für die Ausführung im dynamischen Modus bzw. im statischen Modus ist executionMODE(DYNAMIC) bzw. executionMode(STATIC) erforderlich.

    Im Falle der statischen Ausführung folgt die Angabe der Datei mit der Erweiterung "pdqxml" den Vorgaben, wie sie in der Dokumentation von IBM Optim PureQuery Runtime beschrieben sind.

    Die Verwendung von pureQueryXML(Position_der_pdqxml-Datei) ist eine von vielen Methoden, die Position der Datei mit der Erweiterung "pdqxml" anzugeben. Die Position dieser Datei beinhaltet ihren vollständigen Pfad, z. B. c:/temp/ItemEJB.pdqxml.

    statische Ausführung nicht zutreffend (ignoriert)
  2. In einer Java SE-Umgebung kann "pdqProperties" in der Verbindungs-URL (connectionURL) definiert werden. Es gibt zwei Möglichkeiten, "pdqProperties" im connectionURL zu definieren:
    1. "openjpa.connectionProperties" verwenden. Beispiel:
      <property name="openjpa.ConnectionProperties"
                value="DriverClassName=com.ibm.db2.jcc.DB2Driver, 
                                       Url='jdbc:db2://localhost:50000/demodb:pdqProperties=
                                           pureQueryXml(C:/wsjpa1/fvt/resources/demo.pdqxml);', 
                Username=myid, Password=secret" />
    2. "openjpa.ConnectionURL" verwenden. Beispiel:
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver"/>
      <property name="javax.persistence.jdbc.url" 
                value="jdbc:db2:fvt2:pdqProperties=pureQueryXml(C:/wsjpa1/fvt/resources/demo.pdqxml);"/>
      <property name="javax.persistence.jdbc.user" value="myid"/>
      <property name="javax.persistence.jdbc.password" value="secret"/>
    Achtung: Die Position der Datei "pureQueryXml" muss so konfiguriert sein, dass IBM Optim PureQuery Runtime Lese- und Schreibberechtigungen für die Aktualisierung der Datei besitzt.
    Achtung: Die Datenquelle, die für die Ausführung von IBM Optim PureQuery Runtime definiert ist, darf nicht für Anwendungen freigegeben werden, die SQL in JDBC verwenden.
    Wenn "pdqProperties" in der Datenquelle eines Verbindungs-URL definiert ist, wird die Datei mit der Erweiterung "pdqxml" ignoriert, selbst wenn sie in der JAR-Datei der Anwendung enthalten ist. Ist "pdqProperties" nicht definiert, wird die Datei mit der Erweiterung "pdqxml", die sich in der JAR-Datei der Anwendung befindet, von der Laufzeitkomponente durchsucht (komatibler Modus). Wird die Datei mit der Erweiterung "pdqxml" gefunden, ist die Einstellung STATIC (statischer Modus). Andernfalls werden alle SQLs in JDBC ausgeführt.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



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