IBM Optim pureQuery Runtime

IBM® Optim pureQuery Runtime bietet Java™ Persistence API (JPA) eine Alternative für den Zugriff auf eine Datenbank. pureQuery unterstützt statische Structured Query Language (SQL). PureQuery wird nur von OpenJPA- und WSJPA-Persistenzprovidern unterstützt.

Informationen zu diesem Vorgang

JPA stellt in der Java-EE- und Java-SE-Umgebungen zusätzliche Unterstützung für die pureQuery-Laufzeitumgebung bereit. pureQuery ist ein Java-Hochleistungsplattform für den Datenzugriff, die Sie bei der Verwaltung von Anwendungen unterstützt, die auf Daten zugreifen. pureQuery stellt einen alternativen Satz von Anwendungsprogrammierschnittstellen zur Verfügung, die anstelle von Java Database Connectivity (JDBC) für den Zugriff auf die DB2- und die Informix-Datenbank verwendet werden können.

Zur Verwendung dieses Features im Anwendungsserver muss Data Studio pureQuery Runtime Version 1.2 installiert sein. Wenn Sie den Befehl "bind" für DB2 von der Administrationskonsole oder mit dem Tool wsadmin ausführen möchten, benötigen Sie pureQuery v1.2 oder höher. Weitere Informationen finden Sie im Information-Center-Artikel zum Installieren von IBM Optim pureQuery Runtime.

Sie können pureQuery dynamisch verwenden. Die Dateiadresse pdqxml wird mit der Eigenschaft "pdqProperties" in der Datenquelle oder im Verbindungs-URL angegeben. Weitere Informationen finden Sie im Artikel "pureQuery im dynamischen Modus verwenden".

PureQuery verwenden DB2-Pakete. Diese Pakete setzen sich aus Informationen für eine oder mehrere SQL-Anweisungen (Structured Query Language) zusammen und sind im DB2-Katalog gespeichert. Sie müssen zuerst den Befehl wsdbgen in einer JPA-Anwendung ausführen, um die Pakete zu erstellen. Der Befehl wsdbgen erstellt eine Datei mit dem Namen Name_der_Persistenzeinheit.pdqxml. Diese Datei enthält bereits generierte SQL-Anweisungen für Create, Update, Delete und Retrieve, NamedQueries und NamedNativeQueries von JPA-Entitäten. Die Datei Name_der_Persistenzeinheit.pdqxml muss an die Datenbank gebunden werden. Es werden zugehörige DB2-Pakete generiert, und die SQL-Anweisung wird statisch zur Ausführungszeit ausgeführt. Die Datei Name_der_Persistenzeinheit.pdqxml muss in die JAR-Datei (Java Archive) der Anwendung eingeschlossen werden.

Der Anwendungsserver bietet Unterstützung für statische SQL für Entity-Beans der Enterprise JavaBeans (EJB) Version 2.x und höhere Versionen mit der Option ejbdeploy SQLj. Bei JPA wird dieses Feature über pureQuery angeboten.

Die Verwendung von pureQuery anstelle von JDBC und SQLJ bietet verschiedene Vorteile. Statische SQL bietet mehr Sicherheit und mehr Kontrolle über den Zugriff auf Daten, da Anwendungen nur die Berechtigung zur Ausführung bekannter SQL erhalten. Statische SQL ermöglicht eine bessere Ressourcennutzung auf dem DB2-Server, weil die Syntaxanalyse und Optimierung von SQL-Anweisungen zur Ausführungszeit vermieden wird.

Wenn Sie den Bindungsprozess ausführen und Ihren JDBC-Provider definieren, müssen die folgenden vier JAR-Dateien im Klassenpfad enthalten sein:
  • db2jcc_license_cisuz.jar
  • db2jcc_license_cu.jar
  • pdq.jar
  • pdqmgmt.jar
Achtung: Weitere Informationen zur Kompatibilität der DB2-JAR-Version für pureQuery finden Sie auf der IBM Unterstützungswebsite im Artikel "System requirements for IBM Optim pureQuery Runtime for Linux, UNIX, and Windows".
Einschränkung:
  • Die Eigenschaft "QueryTimeout" wird weder über die API "FetchPlan" noch über die Plug-in-Eigenschaftszeichenfolge für "wsjpa.ConnectionFactoryProperties" unterstützt. Der QueryTimeout-Wert, sofern angegeben, wird ignoriert.
  • Die Eigenschaft "QueryTimeout" wird nicht über die API "FetchPlan" unterstützt. Der QueryTimeout-Wert, sofern angegeben, wird ignoriert.
  • Bei der Verarbeitung einer großen Anzahl von OpenJPA-Ergebnissen werden JDBC-APIs für verschiebbare Cursor verwendet.
Wichtig:
  • JPA setzt die pureQuery-Eigenschaft "pdq.executionMode" auf den Wert STATIC.
  • Zusätzliche zur JAR-Datei des JDBC-Treibers muss die JDBC-Providerkonfiguration die JAR-Datei für die Laufzeitumgebung von pureQuery enthalten.
  • OpenJPA lässt zu, dass Anwendungsprogramme den Abrufplan (FetchPlan) zur Ausführungszeit über das Programm aufrufen und ändern. Die Änderung des Abrufplans kann eine SQL ergeben, die vom Befehl wsdbgen beim Anwendungs-Build nicht generiert wurde. In diesem Fall wird die SQL dynamisch und nicht über die statische SQL aus dem Datenbankpaket ausgeführt.
  • Wenn der Benutzer Änderungen an den Anwendungsabfragen, Entitätszuordnungen oder Persistenzeigenschaften vornimmt, führen Sie den Befehl wsdbgen und die Bindung erneut aus. Dieser Prozess generiert und bindet die aktualisierten Datenbankpakete.
  • Die Werte von Eingabeparametern in JPA-Abfragen (mit EJB-SQL-Abfragen und nativen SQL-Abfragen) dürfen keine Nullwerte (NULL) sein. Eine Ausnahme bilden die Werte für den Ausdruck SET in Aktualisierungsanweisungen. Wenn Sie Nullwerte in einer WHERE-Klausel einer Anweisung vom Typ SELECT, UPDATE oder DELETE suchen möchten, geben Sie stattdessen das Vergleichselement ist null an.

Vorgehensweise


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_jpapdq
Dateiname:tejb_jpapdq.html