Dieses Thema ist in die folgenden Abschnitte unterteilt:
Es gibt die folgenden beiden Möglichkeiten zum Zusammenführen von pureQueryXML-Dateien.
Wenn Sie eine pureQueryXML-Datei außerhalb der Workbench bearbeiten müssen, setzen Sie im Tag <statementSet> der Anweisungsgruppe, in der die Bearbeitung vorgenommen wird, den Wert des Attributs configureStatus auf REQUIRED, wie nachfolgend gezeigt: configureStatus="REQUIRED" Führen Sie danach das Dienstprogramm Configure für die Datei aus.
Bei Java-Anwendungen führen Sie das Dienstprogramm Configure für capture.pdqxml aus, sodass das Dienstprogramm Configure die Anweisungsgruppen benennen kann. Anschließend verteilen Sie diese Datei an andere Mitglieder Ihres Teams, damit diese Anweisungen aus anderen logischen Pfaden in derselben Anwendung inkrementell erfassen können. Jedes Mitglied verwendet seine Kopie als Eingabedatei und gibt die Datei als Wert für die Eigenschaft pureQueryXml an. Jedes Mitglied setzt den Wert der Eigenschaft outputPureQueryXml auf den Namen der Datei, die die weiteren von ihnen erfassten SQL-Anweisungen aufnehmen soll. Sie erhalten die Ausgabedateien dieser Teammitglieder. Für diese Dateien führen Sie das Dienstprogramm Merge aus, um eine neue Datei zu erstellen, die die SQL-Anweisungen aus den Dateien enthält, die zusammengeführt wurden. Wenn Sie die neue Datei öffnen, sehen Sie, dass sie immer noch die Anweisungsgruppen aus der Basisdatei enthält. Die SQL-Anweisungen aus den Ausgabedateien, die Sie von Ihren Teammitgliedern erhalten haben, befinden sich in einer neuen nicht benannten Anweisungsgruppe, die sich am Ende der neuen Datei befindet.
In der aus der Zusammenführung entstandenen Ergebnisdatei kombiniert das Dienstprogramm Merge die SQL-Anweisungen aller pureQueryXML-Dateien in einer einzigen unbenannten Anweisungsgruppe.
Das Attribut wird nicht ersetzt, wenn der Wert in STMT_A bereits true ist oder wenn der Wert in STMT_B entweder false oder eine leere Zeichenfolge ("") ist.
Wenn ein benutzerdefinierter Cursorname in einer anderen Eingabedatei später im Zusammenführungsprozess enthalten ist, wird er ignoriert.
Wenn überdies zwei Anweisungen in verschiedenen pureQueryXML-Dateien mit Ausnahme ihrer Stack-Trace-Einträge völlig identisch sind, werden die unterschiedlichen Stack-Trace-Einträge für die resultierende einzelne Anweisung in der Datei, die aus der Zusammenführung hervorgeht, kombiniert.
Das Dienstprogramm Merge setzt den Wert in der zusammengeführten Datei auf den in der letzten Eingabedatei angegebenen Wert, für die der Wert des Attributs sqlLiteralSubstitution auf DISABLE oder ENABLE gesetzt ist.
Wenn der Wert des XML-Attributs sqlLiteralSubstitution in mindestens einer Eingabedatei auf DISABLE und in den anderen Eingabedateien auf ENABLE gesetzt ist, zeigt das Dienstprogramm eine Warnung an.
(1) >>-------java com.ibm.pdq.tools.Merge--+-------------------+----> '- -baseFile--Datei-' .-------. V | >--+- -inputPureQueryXml----Datei-+--+--------------------------> '- -inputPureQueryXmlGroup--Datei-' >-- -outputPureQueryXml--Datei--+-----------------------+-------> | (2) | '-| Traceoptionen |-----' >--+--------------------------+---------------------------------> | .-FALSE-. | '- -showDetails--+-TRUE--+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----Tage---' >--+--------------------------+--+--------+-------------------->< | .-FALSE-. | '- -help-' '- -validateXml--+-TRUE--+-'
Eine Beschreibung der im Diagramm verwendeten Konventionen finden Sie in Syntaxdiagramme lesen.
Wenn eine SQL-Anweisung in einer der Dateien, die Sie zusammenführen, positionierte Aktualisierungen ausführt und sich die Anweisung, die den Cursor für diese positionierten Aktualisierungen deklariert, nicht in derselben Datei befindet, sucht das Dienstprogramm Merge nach der Deklaration des Cursors in den Dateien, die zusammengeführt werden.
Beispiel: Sie haben SQL-Anweisungen aus einer Cluster-Web-Anwendung erfasst und die drei pureQueryXML-Dateien A, B und C generiert. Für die Zusammenführung verwenden Sie Datei C als Basisdatei. Datei A enthält SQL-Anweisung S1, die eine positionierte Aktualisierung ausführt. Datei A enthält jedoch nicht SQL-Anweisung S2, die den Cursor deklariert, den S1 verwendet. Daher sucht das Dienstprogramm Merge in den Dateien B und C nach einer SQL-Anweisung, die diesen Cursor deklariert. Ist diese Anweisung in den Dateien B und C nicht vorhanden, führt das Dienstprogramm Merge die positionierte Aktualisierungsanweisung S1 nicht zusammen und protokolliert eine Warnung.
Wenn Sie keine Basisdatei angeben, kombiniert das Dienstprogramm Merge in der Datei, die aus der Zusammenführung hervorgeht, die SQL-Anweisungen aus allen pureQueryXML-Dateien zu einer einzelnen nicht benannten Anweisungsgruppe.
Ist für die Variable Tage beispielsweise 5 gesetzt und 25.11. (25. November) ist das aktuelle Datum, werden SQL-Anweisungen mit der Zeitmarke 20.11. (20. November) oder einer älteren Zeitmarke nicht geschrieben.
Hat die SQL-Anweisung keine Zeitmarke, wird die SQL-Anweisung mit aktuellen Zeitmarkeninformationen in die Ausgabedatei geschrieben. Wenn z. B. eine pureQueryXML-Datei einer früheren Version die Eingabedatei ist, hat eine SQL-Anweisung keine Zeitmarke. Für frühere Versionen einer pureQueryXML-Datei, Version 3 oder älter, wird die Option ignoriert, alle SQL-Anweisungen werden mit der aktuellen Zeitmarke in die Ausgabedatei geschrieben und es wird eine Nachricht angezeigt.
Ist für die Anweisungsgruppe für configureStatus der Wert FINAL angegeben, werden Anweisungen, die die Bedingungen für inaktive Tage erfüllen, in die pureQueryXML-Ausgabedatei geschrieben. Das Dienstprogramm Merge schreibt eine Nachricht in die Protokolldatei und gibt zusammen mit der Anweisung den Grund für die Beibehaltung der Anweisung an.
Für die Nachrichten, die nicht in die pureQueryXML-Ausgabedatei geschrieben werden, wird eine Nachricht in die Protokolldatei geschrieben. Ist die Option showDetails auf true gesetzt, werden alle Anweisungen angezeigt, die nicht in die Ausgabedatei geschrieben wurden.
>>-+------------------------+--+---------------------------+--->< '- -traceFile--Dateiname-' | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
Schlägt die XML-Schemaprüfung einer pureQueryXML-Datei fehl, schlägt die Zusammenführungsoperation fehl. Der Dateiname und der Fehler, der das Fehlschlagen der Schemaprüfung verursacht hat, werden dokumentiert. Nachfolgende Dateien werden nicht geprüft. Der erste Gültigkeitsfehler und das Fehlschlagen der Zusammenführung werden dokumentiert.
Es werden nur pureQueryXML-Dateien des aktuellen Release oder der vorangegangenen Version (Version 4 oder 3) geprüft. Wird eine frühere pureQueryXML-Version erkannt, wird für diese Datei keine Prüfung ausgeführt.