Übersicht

Wenn Sie InfoSphere Optim pureQuery Runtime installiert haben, können Sie Ihre pureQuery-Java-Anwendungen oder pureQuery-fähigen Java-Anwendungen in Produktionsumgebungen implementieren. Außerdem können Sie Anwendungen für die DB2-Befehlszeilenschnittstelle und für Microsoft .NET entwickeln.

Funktionen für Java-Anwendungen

Bei Anwendungen, die die pureQuery-API verwenden, bietet InfoSphere Optim pureQuery folgende Features:

Es stellt eine einzelne API bereit, mit der Sie SQL-Anweisungen für Datenbanken, speicherinterne Objektgruppen und Iterator-Objekte ausführen können

Die Java-Plattform stellt eine Vielzahl von Datenstrukturen und APIs (Anwendungsprogrammierschnittstellen) für die Verarbeitung speicherinterner Objektgruppen sowie externer Daten aus verschiedenen Quellen bereit. Jedes dieser Features eignet sich perfekt zur Lösung eines bestimmten Problemtyps. pureQuery hat auch eine bestimmte Menge von Schnittstellen zum Abrufen und Modifizieren der Daten in den Objektgruppen. Beispielsweise stellt pureQuery eine API für Java-Arrays, -Listen, -Zuordnungen und -Iteratoren bereit. Jede API fragt die Daten in der Objektgruppe ab und aktualisiert sie in einigen Fällen.

In ähnlicher Weise ermöglicht die JDBC-API die Verwendung von SQL zum Zugriff auf relationale und andere JDBC-Objekte des Typs DataSource. Allerdings ermöglicht pureQuery es einer Anwendung, einzeln oder in Kombination mit einer einzigen anerkannten Abfragesprache auf alle diese Datenquellen zuzugreifen.

Es stellt ein einfaches Programmiermodell für den Datenzugriff bereit
pureQuery wird in einer dünnen, auf JDBC aufgesetzten Schicht ausgeführt und vereinfacht Abfragen, Aktualisierungen, Aufrufe an gespeicherte Prozeduren und andere Tasks im Zusammenhang mit dem Zugriff auf Datenbanken. pureQuery wird unter Java 2 Platform, Standard Edition 5.0 (J2SE 5.0) und Java Platform, Standard Edition 6 (Java SE 6) ausgeführt.
Ordnet SQL-Daten mit geringem Entwicklereingriff automatisch Rückgabetypen zu, ermöglicht Ihnen jedoch die Angabe von angepasstem Code für komplexe Zuordnungen
pureQuery stellt eine automatische Zuordnung zwischen SQL-Abfrageergebnissen und zurückgegebenen Objekten für viele Java-Objektmuster bereit. Für komplexe benutzerdefinierte Zuordnungen zwischen Abfrageergebnissen und Java-Objekten ermöglicht eine Plug-in-Schnittstelle Benutzerexits.

Sie können Beans erstellen und mit Annotationen versehen, die die Ergebnisse von SQL-Abfragen mit Tabellenjoins zurückgeben. Die Abfrageergebnisse werden als Gruppe von Beans zurückgegeben, die Instanzen anderer Beans enthalten. Die Hierarchie der Beans spiegelt die Eins-zu-eins- und Eins-zu-viele-Beziehungen der Abfrageergebnisse wider. Eine Abfrage könnte z. B. einen Join zwischen einer Mitarbeitertabelle und einer Abteilungstabelle enthalten. Die Abfrage gibt die Mitarbeiter zurück, die anderen Abteilungen zugeordnet sind. Die Ergebnisse werden als Gruppe von Abteilungsbeans zurückgegeben, wobei jede Instanz der Abteilungsbean eine Abteilung darstellt. Jede Abteilungsbean enthält eine Liste von Mitarbeiterbeans. Jede Instanz einer Mitarbeiterbean enthält Mitarbeiterinformationen.

Unterstützt die Entwicklung von SQL-Anwendungen mithilfe von mit Annotationen versehenen Methoden und integrierten Methoden.
Mit Annotationen versehene Methoden werden zum Definieren Ihrer eigenen Methoden in benutzerdefinierten Schnittstellen unterstützt. Sie erstellen Methoden mit Definitionen, die mit SQL-Anweisungen annotiert sind. Sie können Anwendungen entwickeln, die das DAO-Muster (Data Access Object - Datenzugriffsobjekt) einhalten, indem Sie unter Verwendung von mit Annotationen versehenen Methoden Datenzugriffsobjekte erstellen.

Integrierte Methoden werden unterstützt, sodass Sie die Methoden nutzen können, die in der von IBM zur Verfügung gestellten Schnittstelle Data definiert sind. Integrierte Methoden sind für Anwendungen hilfreich, die die Erstellung von SQL-Anweisungen während der Anwendungslaufzeit erfordern. Bei integrierten Methoden werden SQL-Anweisungen als Parameter in Methodenaufrufen übergeben. Dies ist dem in JDBC verwendeten Konzept vergleichbar.

Es wird Unterstützung für die Verwaltung von SQL-Anweisungen bereitgestellt, die SQL statisch ausgeführt werden. Sie können Ihren Code mit Annotationen versehen, um die SQL-Anweisungen zu gruppieren, die in einer Schnittstelle verwendet werden. Sie können den Bindeprozess für die Gruppen steuern. Sie können die Bindeoptionen steuern, die vom Dienstprogramm StaticBinder von pureQuery verwendet werden. Sie können auch die Namen steuern, die für die Pakete generiert werden, die die SQL-Anweisungen enthalten.

Unterstützt sowohl dynamisches als auch statisches SQL während der Laufzeit
pureQuery-Code kann dynamisches SQL mit einem Standard-JDBC-Treiber sowohl für eingebettetes SQL als auch für Ad-hoc-SQL verwenden, das erst bei der Ausführung bekannt wird.
pureQuery-Code kann auch statisches SQL verwenden, wenn der Code den Programmierstil mit Annotationsmethoden und DB2-Datenbanken verwendet. Statisches SQL hat die folgenden Vorteile:
Umgehung des Caches für dynamische Anweisungen
Die Verwendung von statischem SQL verringert die Konkurrenzsituationen für den DB2-Cache für dynamische Anweisungen und verbessert so die Leistung für Anwendungen, die dynamisches SQL verwenden.
Konsistenz von Zugriffspfaden
Statisches SQL macht Antwortzeiten vorhersehbar und stabil, indem es Zugriffspfade sperrt, bevor eine Anwendung ausgeführt wird. Im Gegensatz dazu werden Zugriffspfade für dynamisches SQL während der Laufzeit berechnet.
Mögliche Leistungsverbesserung bei Ihren Anwendungen
Static SQL can improve the performance of your applications.
  • Da Zugriffspläne vor der Ausführung festgelegt werden, müssen SQL-Anweisungen nicht mehr während der Ausführung vorbereitet werden.
  • Da die einzelnen Anweisungen nicht vorbereitet oder beschrieben werden müssen, erfolgt zwischen Clientanwendungen und Datenbankservern ein geringerer Datenaustausch im Netz.
  • Statisches SQL erzwingt Datentypen für Hostvariablen oder Parameter, die in Vergleichselementen verwendet werden. Dadurch wird sichergestellt, dass die Eingabedaten den Zieltypen in der Datenbank entsprechen.
Größere Sicherheit
Sie können Benutzern das Zugriffsrecht EXECUTE für ein DB2-Paket mit Grant erteilen, anstatt ihnen Zugriffsrechte für Datenbankobjekte mit Grant zu erteilen.
Einfache Überarbeitung von Paketen
Die Erstellung von Versionen von DB2-Paketen ermöglicht es Ihnen, Pakete erneut zu binden, ohne das Risiko einzugehen, frühere bessere Zugriffspfade zu verlieren.
Unterstützt JDBC-Typ-2-Verbindungen bei der Ausführung von pureQuery-Anwendungen unter z/OS
Da der JDBC-Typ-2-Treiber eine Kombination aus Java-Code und nativem Code ist, sind Typ-2-Verbindungen in der Regel leistungsstärker als Typ-4-Verbindungen.
Ihre Anwendungen, die die pureQuery-API nicht verwenden, können die Vorteile der Clientoptimierung nutzen. Diese Technologie unterscheidet sich in den folgenden Punkten von anderen Technologien, die die statische Ausführung von SQL unterstützen:
  • Die pureQuery-Clientoptimierung verwendet im Gegensatz zur Programmiersprache COBOL, die einen Vorprozessor für eingebettetes SQL verwendet, keinen Vorprozessor.
  • Im Gegensatz zu SQLJ verwendet die pureQuery-Clientoptimierung weder einen Umsetzer noch eine Anpassungsfunktion.
  • SQL-Anweisungen brauchen in der Quelle einer Anwendung nicht fest codiert zu sein.

Die Clientoptimierung erfordert weder diese Komponenten noch Änderungen am Code, sondern ändert die Interaktion zwischen JDBC-Treiber und Anwendung.

Sichere Speicherung von pureQuery-Daten
pureQuery-Konfigurationsdaten, pureQueryXML-Daten und erfasste SQL-Daten können an einer sicheren Position gespeichert werden und pureQuery Runtime kann bei Bedarf auf diese Daten zugreifen. pureQuery Runtime kann so konfiguriert werden, dass die pureQuery-Daten von sicheren Speicherpositionen abgerufen werden. pureQuery Runtime kann die von pureQuery-fähigen Anwendungen erfassten SQL-Daten, die die pureQuery-Clientoptimierung verwenden, an einer sicheren Position speichern.
Unterstützung von DB2-Sonderregistern
Bei der Erfassung der SQL-Anweisungen von einer Anwendung verfolgt die pureQuery-Clientoptimierung die Informationen in den Sonderregistern. Die pureQuery-Clientoptimierung zeichnet die Werte der Sonderregister auf, die häufig verwendet werden und sich auf das Verhalten der SQL-Anweisung auswirken können. Wenn dieselbe SQL-Anweisung zweimal abgesetzt wird, kann ihr Verhalten unterschiedlich sein, wenn der Wert eines Sonderregisters zwischen dem ersten und zweiten Absetzen der Anweisung geändert wurde.

Das pureQuery-Dienstprogramm Configure kann Bindeoptionen auf der Grundlage der Sonderregisterinformationen generieren, die mit den erfassten SQL-Anweisungen aufgezeichnet werden. Verwenden Sie die Option -optionsFileForBind des Dienstprogramms Configure, um eine StaticBinder-Optionsdatei zu erstellen, die die Bindeoptionen auf der Grundlage der Sonderregistereinstellungen enthält, die beim Erfassen der Anweisungen aufgezeichnet wurden. Die Optionsdatei enthält außerdem Informationen und Warnungen zu den Anweisungsgruppen, SQL-Anweisungen und Sonderregisterinformationen in der pureQueryXML-Datei.

Mithilfe der Informationen in der Datei können Sie eine Gruppe von Bindeoptionen angeben, sodass das Verhalten einer SQL-Anweisung bei der statischen Ausführung dem Verhalten bei einer dynamischen Ausführung über eine Anwendung vergleichbar ist. Sie geben Bindeoptionen mit dem pureQuery-Dienstprogramm StaticBinder an, wenn Sie DB2-Pakete binden, die SQL-Anweisungen enthalten.

pureQuery Runtime ab Version 2.2.0.3 zeichnet Sonderregisterinformationen in einer pureQueryXML-Datei auf. Wurde Ihre pureQueryXML-Datei mit einer pureQuery Runtime-Version vor Version 2.2.0.3 erstellt, müssen Sie einige SQL-Anweisungen möglicherweise erneut erfassen, um die Sonderregisterinformationen aufzuzeichnen.

Einfache Verwaltung von pureQueryXML-Dateien
Die folgenden Funktionen ermöglichen Ihnen die Verwaltung von SQL-Anweisungen und -Anweisungsgruppen in einer pureQueryXML-Datei:
  • Das Dienstprogramm Configure kann SQL-Anweisungen nach dem Text in der SQL-Anweisung, beispielsweise nach den Tabellen- oder Spaltennamen, oder nach der Verwendung der Sonderregister gruppieren.
  • Das Dienstprogramm Configure kann SQL-Anweisungen aus einer pureQueryXML-Datei löschen, wenn die Anweisung von der Anwendung eine bestimmte Anzahl Tage lang nicht abgesetzt wurde. Wenn die pureQuery-Eigenschaft captureMode auf ON gesetzt ist, aktualisiert pureQuery Runtime die Uhrzeit, zu der eine SQL-Anweisung von einer Anwendung abgesetzt wurde.
  • Das Dienstprogramm Configure kann den Status von Anweisungsgruppen vor der Verarbeitung der pureQueryXML-Dateien oder nach der Verarbeitung festlegen. Über den Status der Anweisungsgruppen wird gesteuert, ob das Dienstprogramm Configure versucht, die Anweisung zu modifizieren. Wenn Sie StaticBinder für die pureQueryXML-Datei ausführen, um SQL-Anweisungen für eine DB2-Datenbank zu binden, müssen Sie die in der Anweisungsgruppe enthaltenen SQL-Anweisungen nach der Modifizierung der Anweisungsgruppe erneut binden.
  • Das Dienstprogramm Configure kann Schemanamen und Namen von Speicherpositionen von Datenbanken für SQL-Anweisungen in pureQueryXML-Dateien ändern.
  • Das Dienstprogramm StaticBinder kann SQL-Anweisungen in einer pureQueryXML-Datei handhaben, wenn der Bindeprozess einen Fehler für die Anweisung zurückgibt. Das Dienstprogramm kann die Anweisung als ungültig markieren oder aus der Datei entfernen. Wenn die Anweisung als ungültig markiert ist, verbleibt sie in der Datei, wird aber behandelt, als wäre ihr Attribut isBindable auf 'false' gesetzt. Sie können mit der Anweisung Configure die Anweisung als gültig markieren oder Anweisungen entfernen, die als ungültig markiert sind.
  • Die Dienstprogramme Configure, Merge und StaticBinder können die XML-Schemaprüfung für pureQueryXML-Eingabedateien durchführen.
  • Das Dienstprogramm ManageRepository kann einen Bericht generieren, der die Unterschiede zwischen zwei pureQueryXML-Dateien auflistet. Sie können die an einer aktualisierten pureQueryXML-Datei vorgenommenen Änderungen auf einfache Weise anzeigen, indem Sie diese Datei mit der ursprünglichen Datei vergleichen.

Features für C- und C++-CLI-Anwendungen

CLI (Call Level Interface - Befehlszeileninterpreter) ist eine C- und C++-Anwendungsprogrammierschnittstelle für den Zugriff auf relationale Datenbanken. CLI übergibt mithilfe von Funktionsaufrufen dynamische SQL-Anweisungen als Funktionsargumente.

Nachdem Sie die pureQuery-Clientoptimierung für eine CLI-Anwendung aktiviert haben, die eine Verbindung zu einer DB2-Datenbank oder zu einer Informix-Datenbank herstellt, können Sie die von der Anwendung abgesetzten SQL-Anweisungen steuern. Wenn die Anwendung beispielsweise die Verbindung zu einer DB2-Datenbank herstellt, können Sie die Anwendung so konfigurieren, dass SQL-Anweisungen für die Datenbank statisch ausgeführt werden. Sie können die SQL-Anweisungen steuern, die für die Datenbank ausgeführt werden dürfen.

Die pureQuery-Clientoptimierung bietet unter anderem die folgenden Vorteile:
  • Statische Ausführung von SQL-Anweisungen für DB2-Datenbanken.
  • Diagnose von Problemen mit SQL-Anweisungen mithilfe von Funktionen für die Rückverfolgung zum Anwendungsquellcode.
  • Ersetzen von SQL-Anweisungen mit geringer Leistung durch optimierte Anweisungen.
  • Verringern des Risikos von SQL-Injection-Attacken durch Ausführung einer eingeschränkten Gruppe von SQL-Anweisungen.

Sie können SQL-Anweisungen mit dem DB2-Befehl db2cli ausführen und prüfen. Sie können den Befehl db2cli mit der Option exec ausführen, um SQL-Anweisungen auszuführen oder zu prüfen, die in einer Datei enthalten sind. Sie können angeben, dass die in der Datei enthaltenen SQL-Anweisungen vorbereitet aber nicht ausgeführt werden, sodass sie geprüft werden können. Sie können die SQL-Anweisungen, die mithilfe des Befehls db2cli ausgeführt oder geprüft werden, in einer pureQueryXML-Datei erfassen.

Funktionen für Microsoft .NET-Anwendungen

InfoSphere Optim pureQuery Runtime for Linux, UNIX, and Windows bietet Unterstützung für die Verbesserung der Stabilität, Sicherheit und Verwaltbarkeit von .NET-Anwendungen, einschließlich derer, die in einer beliebigen .NET-basierten Sprache geschrieben sind (wie C# und VB.NET).

pureQuery Runtime bietet unter anderem die folgenden Vorteile:
  • Verbessern der Servicequalität für vorhandene Anwendungen
    • Verbessern der Leistung
    • Verwenden von Zugriffsplänen
    • Erhöhen der Genauigkeit der Kapazitätsplanung
  • Steigern der Wertschöpfung aus getätigten Investitionen
    • Erhöhen des Systemdurchsatzes
    • Beschleunigen der Problemlösung
  • Verbessern der Sicherheit
    • Einschränken des Benutzerzugriffs
    • Minimieren von Hackerattacken
    • Verbessern der Prüfbarkeit

Informationen zur Verwendung von pureQuery Runtime for Linux, UNIX, and Windows mit .NET finden Sie unter http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.swg.im.dbclient.adonet.doc/doc/t0054569.html


Feedback