Beispiel: SQL-Anweisungen von einer CLI-Anwendung statisch ausführen

Eine CLI-Anwendung (CLI - Call Level Interface), die für die pureQuery-Clientoptimierung aktiviert ist, kann so konfiguriert werden, dass SQL-Anweisungen für eine DB2-Datenbank statisch ausgeführt werden. Die statische Ausführung von SQL-Anweisungen vermeidet die Vorbereitung bestimmter SQL-Anweisungen während der Ausführung und kann die Anwendungssicherheit und -leistung verbessern.

Vorbereitende Schritte

Aktivieren Sie Ihre CLI-Anwendung für die pureQuery-Clientoptimierung.

Auf dem Computer, auf dem Sie die Java-basierten Dienstprogramme Configure und StaticBinder ausführen, müssen Sie pureQuery Runtime installieren und aktivieren. Auf dem Computer müssen die folgenden Produkte installiert sein:
  • Java™ Runtime Environment (JRE) Version 1.5 oder höher
  • IBM® Data Server Driver für JDBC und SQLJ Version 3.57.xx
Die JAR-Dateien von pureQuery Runtime, pdq.jar und pdqmgmt.jar, sowie die JAR-Dateien von Data Server Driver müssen auf dem Computer, auf dem die Dienstprogramme ausgeführt werden, in Verzeichnissen stehen, die in CLASSPATH angegeben sind.

Informationen zu diesem Vorgang

Die Task setzt voraus, dass Ihre CLI-Anwendung mit der folgenden Verbindungs-URL eine Verbindung zur DB2-Datenbank herstellt:

jdbc:db2://svl01:500/DB2M -user Benutzer01 -password Kennwort

Sie legen in der Konfigurationsdatei db2cli.ini Schlüsselwörter fest, um die Anwendung zu konfigurieren. Sie konfigurieren Ihre CLI-Anwendung für die Erfassung von SQL-Anweisungen, die von der Anwendung ausgegeben werden, und dann konfigurieren Sie die Anwendung für die statische Ausführung der Anweisungen.

Vorgehensweise

Gehen Sie wie folgt vor, um SQL-Anweisungen von einer CLI-Anwendung statisch auszuführen:

  1. Legen Sie die pureQuery-Schlüsselwörter in Ihrer CLI-Anwendungskonfigurationsdatei fest, um von Ihrer Anwendung ausgegebene SQL-Anweisungen zu erfassen.

    Aktualisieren Sie die folgenden Schlüsselwörter in der Konfigurationsdatei db2cli.ini, mit der die Anwendung die SQL-Anweisungen erfasst, die von der Anwendung ausgegeben werden:

    captureMode=ON
    executionMode=DYNAMIC
    pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    Wenn Sie eine Datei db2dsdriver.cfg verwenden, können Sie die Schlüsselwörter alternativ auch als Attribute in Parameterelementen festlegen:
    <parameter name="captureMode" value="ON"/>
    <parameter name="executionMode" value="DYNAMIC"/>
    <parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml"/>

    Die Schlüsselworteinstellungen konfigurieren Ihre CLI-Anwendung für die dynamische Ausführung von SQL-Anweisungen und erfassen Anweisungen erfolgreich in der Datei C:\testapp\Sample1Cptr.pdqxml.

    Der Wert DYNAMIC für das Schlüsselwort executionMode ist der Standardwert und in der Eigenschaftendatei nicht erforderlich. Die Angabe der Eigenschaft in die Datei weist lediglich noch einmal auf den Standardwert hin. Der Wert wird geändert, um SQL-Anweisungen statisch auszuführen.

    Der Wert für das Schlüsselwort pureQueryXml gibt die Speicherposition und den Namen der pureQueryXML-Datei an, in der die pureQuery-Clientoptimierung die SQL-Daten speichert, die aus der Anwendung erfasst werden. Der Wert ist auch die Speicherposition und der Name der pureQueryXML-Datei, mit der die pureQuery-Clientoptimierung die Ausführung von SQL-Anweisungen steuert. Wenn Sie die pureQuery-Clientoptimierung für die statische Ausführung der SQL-Anweisungen für eine DB2-Datenbank konfigurieren, ermittelt pureQuery Runtime anhand der Informationen in der Datei die auszuführenden SQL-Anweisungen.

  2. Führen Sie Ihre Anwendung aus, um SQL-Anweisungen in der pureQueryXML-Datei zu erfassen.

    Die SQL-Anweisungen werden in der pureQueryXML-Datei erfasst.

  3. Konfigurieren Sie die pureQueryXML-Datei, die die erfassten SQL-Anweisungen enthält, und binden Sie die erfassten SQL-Anweisungen.
    1. Kopieren Sie die pureQueryXML-Datei bei Bedarf auf den Computer, auf dem die pureQuery Runtime-Dateien installiert sind.
    2. Führen Sie das pureQuery-Dienstprogramm Configure aus, um den Paketnamen und die Objektgruppen-ID in der pureQueryXML-Datei zu konfigurieren.

      Führen Sie das Dienstprogramm Configure an einer Eingabeaufforderung aus, um der pureQueryXML-Datei Informationen wie den Paketnamen und die Objektgruppen-ID hinzuzufügen, die vom pureQuery-Dienstprogramm StaticBinder verwendet werden. Sie können außerdem weitere Optionen zum Verwalten der SQL-Anweisungen in der Datei angeben.

      Der folgende Beispielbefehl führt das Dienstprogramm Configure aus und gibt den Basispaketnamen SMPL1 und die Objektgruppe COLL01 an. Geben Sie den Befehl in einer Zeile ein.

      java com.ibm.pdq.tools.Configure -pureQueryXml Sample1Cptr.pdqxml 
         -rootPkgName SMPL1 -collection COLL01
    3. Führen Sie das pureQuery-Dienstprogramm StaticBinder mit der konfigurierten pureQueryXML-Datei aus, um Pakete auf dem DB2-Server zu erstellen und zu binden.
      Führen Sie das Dienstprogramm StaticBinder an einer Eingabeaufforderung mit Optionen aus, die die Datenbank und Paketinformationen angeben. Der folgende StaticBinder-Beispielbefehl erstellt Pakete auf dem DB2-Zielserver und bindet die Pakete. Geben Sie den Befehl in einer Zeile ein.
      java com.ibm.pdq.tools.StaticBinder
        -url jdbc:db2://svl01:500/DB2M -user Benutzer01 -password Kennwort
         -pureQueryXml Sample1Cptr.pdqxml
    4. Ersetzen Sie bei Bedarf die pureQuerXML-Datei auf dem Computer, auf dem Ihre Anwendung mit der konfigurierten pureQueryXML-Datei ausgeführt wird.
  4. Aktualisieren Sie Ihre CLI-Anwendungskonfigurationsdatei, sodass Ihre erfassten Anweisungen statisch ausgeführt werden.

    Aktualisieren Sie das pureQuery-Schlüsselwort executionMode in der Konfigurationsdatei db2cli.ini, um die statische Ausführung der von der Anwendung ausgegebenen SQL-Anweisungen zu aktivieren. Der Schlüsselwortwert wird von DYNAMIC in STATIC geändert:

    captureMode=ON
    executionMode=STATIC
    pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    In der Datei db2dsdriver.cfg legen Sie die Schlüsselwörter als Attribute in Parameterelementen fest:
    <parameter name="captureMode" value="ON"/>
    <parameter name="executionMode" value="STATIC" />
    <parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml"/>
  5. Führen Sie die Anwendung aus oder starten Sie sie erneut, damit die akualisierten Informationen in der Konfigurationsdatei und der pureQueryXML-Datei verwendet werden.

Ergebnisse

Wenn Sie die Anwendung ausführen, werden die beiden von der Anwendung ausgegebenen SQL-Anweisungen statisch ausgeführt. Wenn Sie die Anwendung aktualisieren und SQL-Anweisungen ändern oder hinzufügen, werden die aktualisierten oder neuen SQL-Anweisungen dynamisch ausgeführt und in der pureQueryXML-Datei erfasst.

Tipp: Sie können die Anwendung auf die Ausführung der nur in der pureQueryXML-Datei erfassten SQL-Anweisungen beschränken. Eine Konfiguration, die die Ausführung von SQL-Anweisungen beschränkt, ist das Setzen des Schlüsselworts captureMode auf den Wert OFF und das Hinzufügen des Schlüsselworts und Werts capturedOnly=TRUE:
captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
Für die Datei db2dsdriver.cfg legen Sie die folgenden Parameterelemente fest:
<parameter name="captureMode" value="OFF" />
<parameter name="capturedOnly" value="TRUE" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml"/>

Bei dieser Konfiguration werden nur die SQL-Anweisungen in der pureQueryXML-Datei statisch ausgeführt. Aktualisierte oder neue SQL-Anweisungen werden in der pureQueryXML-Datei nicht erfasst.


Feedback