captureMode (Eigenschaft)

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 nutzen diese Informationen bei der Verarbeitung der Anweisungen.

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-Laufzeitinformationen für SQL-Anweisungsdatensätze bei der Anwendungsausführung erfasst werden sollen.
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 zeichnet SQL-Laufzeitinformationen auf, wenn die Sonderregistereinstellungen, die mit der SQL-Anweisung erfasst werden, sich von den Einstellungen in der pureQueryXML-Datei unterscheiden. Wenn z. B. eine SQL-Anweisung erfasst wurde und dieselbe Anweisung erneut mit einer anderen SCHEMA-Einstellung 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-Eingabe- und -Ausgabedateien angeben, werden nur neue Anweisungen in die Ausgabedatei geschrieben.

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 ist
pureQuery 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 ist
pureQuery 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

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 genutzt werden können.
executionMode=DYNAMIC
captureMode=LITE
pureQueryXml=capture.pdqxml

Feedback