Gibt an, ob Informationen zu SQL-Anweisungen und dem zu erfassenden Typ von Informationen erfasst werden sollen.
Diese Informationen werden in die Datei, die von der Eigenschaft pureQueryXml angegeben wird, bzw. an die Position geschrieben, die von der Eigenschaft outputPureQueryXml angegeben wird. Handelt es sich bei der Speicherposition um ein Repository, das in einer Datenbank erstellt wurde, werden die Informationen in die
durch die Eigenschaft propertiesGroupId angegebene Repository-Laufzeitgruppe geschrieben.
Wenn bei der Ausführung Ihrer Anwendung captureMode auf den Wert ON
gesetzt ist, müssen alle logischen Pfade, die die zu erfassenden SQL-Anweisungen
enthalten, erfolgreich ausgeführt werden. pureQuery erfasst SQL-Anweisungen nur dann, wenn sie erfolgreich ausgeführt werden.
Beim Erfassen von SQL-Anweisungen aus einer Anwendung, die auf eine DB2 for z/OS-Datenbank zugreift, zeichnet pureQuery Runtime SQL-Anweisungen auf, die Mehrfachzeileneinfügungen (Multiple Row Inserts, MRI) ausführen können. Die pureQuery-Dienstprogramme Configure und StaticBinder verwenden diese Informationen bei der Verarbeitung der Anweisungen.
Für Java-Anwendungen steuert die JDBC-Methode setMaxRows die maximale Anzahl Zeilen, die von einer SQL-Anweisung zurückgegeben werden. pureQuery Runtime erfasst während der Erfassung von SQL-Informationen den von der JDBC-Methode setMaxRows angegebenen Wert. Das pureQuery-Dienstprogramm StaticBinder verwendet den Wert setMaxRows beim Erstellen und Binden von Paketen, die SQL-Anweisungen enthalten. pureQuery Runtime verwendet den Wert setMaxRows, um die Anzahl der zurückgegebenen Zeilen bei der statischen Ausführung von SQL-Anweisungen zu begrenzen.
Möglicherweise werden SQL-Anweisungen mit verschiedenen, von der Methode setMaxRows angegebenen Werten mehrfach erfasst. pureQuery Runtime
verwendet den höchsten von der Methode setMaxRows angegebenen Wert.
Wenn die Anweisung auch die Klausel FETCH FIRST enthält, verwendet pureQuery Runtime auch den von der Klausel angegebenen Wert, um die maximale Anzahl der zurückgegebenen Zeilen zu ermitteln.
Anmerkung: Wenn die Methode
setMaxRows den Wert 0 angibt, werden alle Zeilen zurückgegeben.
Wenn eine SQL-Anweisung mit optimistischem Sperren ausgeführt wird, kann sie nicht statisch ausgeführt werden.
Daher erfasst pureQuery Runtime keine Anweisungen, die mit optimistischem Sperren ausgeführt werden. Die Anweisungen werden nicht von den
pureQuery Runtime-Optionen
allowDynamicSQL und
capturedOnly beeinflusst.
Optimistisches Sperren wird durch folgende Methoden aktiviert:
DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery
Diese Eigenschaft kann folgende Werte annehmen:
- ON
- Gibt an, dass SQL-Anweisungen erfasst werden sollen. pureQuery Runtime zeichnet während der Ausführung der Anwendung SQL-Laufzeitinformationen auf.
- OFF
- Der Standardwert. Gibt an, dass SQL-Anweisungen bei der Anwendungsausführung nicht erfasst werden sollen.
- NEW_STMTS
- Gibt an, dass nur neue SQL-Anweisungen erfasst werden. pureQuery
Runtime aktualisiert auch SQL-Laufzeitinformationen für Anweisungen in der pureQueryXML-Datei. Die erfassten Informationen werden aufgezeichnet, wenn sie sich von den Informationen in der pureQueryXML-Datei unterscheiden und sich die Informationen möglicherweise auf die zukünftige statische Ausführung zuvor erfasster Anweisungen auswirken können.
Wenn z. B. eine SQL-Anweisung erfasst wurde und dieselbe Anweisung erneut mit einer anderen SCHEMA-Einstellung oder mit einer anderen Sonderregistereinstellung erfasst wird, aktualisiert pureQuery Runtime die Informationen für die SQL-Anweisung in der pureQueryXML-Datei durch die neuen SCHEMA-Informationen.
SQL-Informationen wie Ausführungszeit und Ausführungszähler werden nicht erfasst.
Dieser Wert wird nur für Java-Anwendungen unterstützt.
Wenn Sie andere pureQueryXML-Eingabedateien und -Ausgabedateien angeben, werden nur neue Anweisungen und Informationen in die Ausgabedatei geschrieben, die sich möglicherweise auf die zukünftige statische Ausführung zuvor erfasster Anweisungen auswirken können.
Wenn Sie den Wert der Eigenschaft
captureMode auf
NEW_STMTS setzen, werden die Standardwerte für die pureQuery Runtime-Eigenschaften geändert.
In der folgenden Tabelle werden die geänderten Standardwerte aufgelistet:
Tabelle 1. Standardwerte für pureQuery Runtime-Eigenschaften, wenn die Eigenschaft 'captureMode' auf NEW_STMTS gesetzt istpureQuery Runtime-Eigenschaft |
Standardwert |
maxNonParmSQL |
100 |
maxStackTracesCaptured |
1 |
stackTraceDepth |
5 |
sqlLiteralSubstitution |
NOT_SET |
Sie können Werte für pureQuery Runtime-Eigenschaften angeben, um die Standardwerte außer Kraft zu setzen.
- LITE
- Gibt an, dass eine verringerte Menge von Stack-Trace-Informationen mit SQL-Anweisungen erfasst wird. Durch die Verringerung der erfassten Datenmenge benötigt der Erfassungsprozess weniger Ressourcen. pureQuery Runtime aktualisiert die pureQueryXML-Datei sowohl für neue als auch für bereits erfasste SQL-Anweisungen.
SQL-Informationen wie Ausführungszeit und Ausführungszähler werden erfasst.
Dieser Wert wird nur für Java-Anwendungen unterstützt.
Wenn Sie den Wert der Eigenschaft
captureMode auf
LITE setzen, werden die Standardwerte für die pureQuery Runtime-Eigenschaften geändert.
In der folgenden Tabelle werden die geänderten Standardwerte aufgelistet:
Tabelle 2. Standardwerte für pureQuery Runtime-Eigenschaften, wenn die Eigenschaft 'captureMode' auf LITE gesetzt istpureQuery Runtime-Eigenschaft |
Standardwert |
maxStackTracesCaptured |
1 |
stackTraceDepth |
5 |
sqlLiteralSubstitution |
NOT_SET |
Sie können Werte für pureQuery Runtime-Eigenschaften angeben, um die Standardwerte außer Kraft zu setzen.
Hinweise zur Verwendung von DB2 CLI
und IBM Data Server Driver
Bei der Verwendung von DB2 Call Level Interface (CLI) oder IBM® Data Server Driver mit
pureQuery Runtime können Sie die pureQuery Runtime-Eigenschaft als Konfigurationsschlüsselwort verwenden.
- IBM CLI-Schlüsselwortsyntax
- captureMode = ON | OFF
- IBM Data Server Driver-Konfigurationssyntax
- <parameter name="captureMode" value="ON | OFF" />
- funktional entsprechendes Verbindungszeichenfolgenschlüsselwort von IBM Data Server
Provider für .NET
- nicht zutreffend
Hinweise
Die folgenden Informationen werden für die Erfassung von SQL-Informationen verwendet:
- Für die pureQuery-Clientoptimierung aktivierte CLI-Anwendungen unterstützen nur das Schlüsselwort pureQueryXml zum Erfassen von Daten in einer Datei.
- Setzen Sie die Connection- oder DataSource-Eigenschaft enableNamedParameterMarkers vor der Verwendung benannter Parametermarken auf DB2BaseDataSource.YES, um sicherzustellen, dass Java-Anwendungen mit benannten Parametermarken unabhängig von Version und Typ des Datenservers ordnungsgemäß funktionieren.
Beispiele
Im folgenden Beispiel hat ein Unternehmen bereits SQL-Anweisungen aus einer Anwendung erfasst, die für die pureQuery-Clientoptimierung aktiviert ist. Die Anweisungen sind in einer pureQueryXML-Datei enthalten. Das Unternehmen hat die Anwendung und die pureQueryXML-Datei
prod-v1.pdqxml in einer Produktionsumgebung implementiert. Der Bindeprozess wurde durchgeführt, sodass die SQL-Anweisungen für die Produktionsdatenbank statisch ausgeführt werden. Man ist sich jedoch nicht sicher, ob alle von der Anwendung ausgeführten SQL-Anweisungen erfasst wurden. Damit nur noch nicht erfasste SQL-Anweisungen erfasst werden, kann das Unternehmen den Wert der Eigenschaft
captureMode auf
NEW_STMTS setzen. Die folgenden Eigenschaftseinstellungen konfigurieren pureQuery Runtime so, dass SQL-Anweisungen in der pureQueryXML-Datei
newStmt.pdqxml erfasst werden, wenn die Anweisung nicht in der pureQueryXML-Datei
prod-v1.pdqxml enthalten ist.
executionMode=STATIC
captureMode=NEW_STMTS
pureQueryXml=prod-v1.pdqxml
outputPureQueryXml=newStmt.pdqxml
Nur neue Anweisungen werden erfasst. Stack-Traces und Statistikdaten werden für die neuen Anweisungen nicht erfasst. Der Erfassungsprozess benötigt weniger Ressourcen und könnte in einer Produktionsumgebung akzeptabel sein.
Im folgenden Beispiel will ein Unternehmen SQL-Anweisungen ohne extensive Stack-Trace-Informationen aus einer für die pureQuery-Clientoptimierung aktivierten Anwendung erfassen.
Mit den folgenden pureQuery Runtime-Eigenschaften werden von der Anwendung ausgeführte SQL-Anweisungen in der pureQueryXML-Datei
capture.pdqxml erfasst.
Die Anweisungen werden mit zusätzlichen Laufzeitinformationen wie der Ausführungszeit der Anweisung erfasst, die für die Optimierung der Anwendung verwendet werden können.
executionMode=DYNAMIC
captureMode=LITE
pureQueryXml=capture.pdqxml