Wenn Sie Anwendungen ausführen, die für die pureQuery-Clientoptimierung aktiviert sind, können Sie die Position angeben, an der pureQuery Runtime die Laufzeitkonfigurationsinformationen und pureQueryXML-Informationen abruft. Wenn Sie SQL-Daten erfassen, können Sie angeben, wo die Daten gespeichert werden.
Sie können die folgenden Dateien erstellen, die während des Aktivierungsprozesses der pureQuery-Clientoptimierung und während der Laufzeit verwendet werden:
- pureQuery Runtime-Konfigurationseigenschaftendatei
- pureQueryXML-Datei, die während der Laufzeit verwendete SQL-Daten enthält
- Configure-Eigenschaftendatei und Bind-Eigenschaftendatei
- pureQueryXML-Dateien, die erfasste SQL-Daten enthalten
Sie müssen entscheiden, wo die pureQuery-Eigenschaften und -Daten gespeichert werden sollen. Sie können die pureQuery Runtime-Standardspeicherposition verwenden oder eine Speicherposition angeben.
- Lokales Dateisystem (Standardverhalten)
- pureQuery Runtime sucht standardmäßig im lokalen Dateisystem nach Eigenschaften und Daten. Bei diesem Modell geben die pureQuery Runtime-Eigenschaften pureQueryXml und outputPureQueryXml die Dateien an, die pureQuery-Daten enthalten. Diese beiden Eigenschaften können an verschiedenen Stellen angegeben werden, z. B. in den Dateien pdq.properties
und pdq.appwide.properties.
- Dateisystem oder Repository in einer Datenbank angeben
- Sie können jedoch angeben, dass sich die pureQuery-Daten und -Laufzeiteigenschaften in einem Repository in einer Datenbank und/oder in einem Dateisystem befinden. Geben Sie die Position mit den pureQuery Runtime-Eigenschaften finalRepositoryProperties und outputXmlRepository an.
Wenn Sie eine Anwendung für die pureQuery-Clientoptimierung verwenden und die pureQuery-Daten in einem Repository speichern, verwenden Sie das pureQuery-Dienstprogramm ManageRepository, um auf die
pureQuery-Daten im Repository zuzugreifen und sie zu speichern. Sie können ein Repository mit dem Dienstprogramm ManageRepository erstellen, verwalten und pflegen.
Das Speichern von pureQuery-Daten und -Eigenschaften in einem Repository hat Vorteile, aber Sie müssen beim Erstellen und Verwalten Ihres Repositorys entsprechend planen.
Vorteile bei der Verwendung eines Repositorys
Die Verwendung eines Repositorys in einer Datenbank als zentraler Speicher für pureQuery-Daten hat die folgenden Vorteile:
- Sie können auf die pureQuery-Daten zugreifen oder sie aktualisieren, ohne die Ausführung von Anwendungen zu unterbrechen.
- Mithilfe eines zentral verwalteten Repositorys kann eine einzelne Kopie von pureQuery-Eigenschaften und -XML-Dateien von Anwendungen verwendet werden, die auf mehreren Anwendungsservern implementiert werden.
- Eine aktive Anwendung kann so konfiguriert werden, dass periodisch geprüft wird, ob für die pureQuery-Eigenschaften und -XML-Dateien Updates vorhanden sind, und dass automatisch mit der Verwendung der neuen Daten angefangen wird.
- Die Berechtigung zum Zugreifen auf und Aktualisieren von pureQuery-Daten kann von der Datenbank erzwungen werden.
- Ein Administrator kann SQL für eine Anwendung und Informationen zur Quellcodeposition für fehlerhafte SQL-Anweisungen in einer pureQueryXML-Datei einfacher prüfen.
Repository-Konfigurationsaspekte
Wenn Sie eine Datenbank zum Speichern von pureQuery-Artefakten verwenden, verfügen Sie bei der Konfiguration über eine gewisse Flexibilität. Die primären Entscheidungspunkte lauten wie folgt:
- Wo befinden sich die Datenbanken, die die pureQuery-Daten enthalten?
- Wie soll eine Anwendung reagieren, wenn sie während der Initialisierung nicht auf das Repository zugreifen kann?
- Soll eine Anwendung die Funktionalität für automatische Aktualisierung verwenden? Wenn ja, was ist ein empfohlenes Intervall für das Abfragen des Repository-Datenbankverwaltungssystems bei Updates?
- Repository-Datenbankposition ermitteln
- Die zwei Datentypen sind Eingabedaten und Ausgabedaten:
- pureQuery Runtime-Ausführungsdaten und -Konfigurationsdaten (Eingabe)
- Erfasste pureQuery-SQL-Daten (Ausgabe)
Es ist möglich, die Anwendungsausführungsumgebung für zwei verschiedene Positionen hinsichtlich Eingabe- und Ausgabedaten zu konfigurieren. Sie können jeden Datentyp in einem der folgenden Elemente positionieren:
- Dieselbe Datenbank, in der die Anwendung transaktionsorientierte Arbeitsvorgänge ausführt (die Transaktionsdatenbank)
- Eine Datenbank, die an derselben Position wie der Anwendungsserver ausgeführt wird
- Eine ferne Datenbank, die von der Anwendung oder dem Transaktionsdatenbankserver separat ist
Standardempfehlung: Erstellen Sie in der Transaktionsdatenbank für die Ein- und Ausgabe ein einzelnes Repository. Dies hat zwei Vorteile:
- Einfachheit
- Dieser Ansatz bietet Einfachheit, weil Daten nicht in einer separaten Datenbank erstellt und verwaltet werden müssen.
- Verfügbarkeit
- Anwendungen sind möglicherweise so konfiguriert, dass sie fehlschlagen, wenn das pureQuery-Datenbankrepository während der Initialisierung nicht verfügbar ist. In solchen Fällen erhöht die Verwendung der Transaktionsdatenbank gewöhnlich die Anwendungsverfügbarkeit, weil die Transaktionsdatenbank normalerweise ausgezeichnete Verfügbarkeit und andere Servicequalitätsmerkmale aufweist. Die Verwendung eines separaten Servers mit ähnlichen Merkmalen erhöht mögliche Fehlerquellen.
Aspekte einer anderen Speicherposition der Datenbank:
- Wenn Sie um erhöhte Aktivität in der Transaktionsdatenbank oder im Netz aufgrund automatischer pureQuery-Aktualisierung oder des Schreibens von Ausgabeerfassungsdatensätzen besorgt sind, ordnen Sie die Repository-Datenbank auf dem Anwendungsserver oder einem separaten Server an.
- Ihre Site verfügt möglicherweise auch über Standards für die in der Transaktionsdatenbank zulässigen Datentypen. Diese Anforderungen können Sie auch dazu bewegen, einen separaten Server für die Datenbank auszuwählen.
- Eine Kompromissvariante besteht darin, das Eingabedatenrepository in die Transaktionsdatenbank zu stellen und auf einem separaten Server ein Repository zu erstellen, um die Ausgabeerfassungsdatensätze zu speichern.
- Konfigurationen mit einer Kombination von Eingabedaten in einem Datenbankrepository und Ausgabedaten in einem lokalen oder fernen Dateisystem sind auch zulässig.
- Verhalten bei Nichtverfügbarkeit des Repositorys
- Es ist wichtig, im Voraus das Verhalten Ihrer Anwendung im Fall von nicht verfügbaren pureQuery-Daten beim Anwendungsstart zu berücksichtigen. Die pureQuery Runtime-Zeiteigenschaft repositoryRequired steuert dieses Verhalten.
Durch die Standardeinstellung no wird pureQuery Runtime auf das Standardverhalten für alle pureQuery-Clientoptimierungseigenschaften zurückgesetzt. Dies bedeutet, dass die Anwendung mit dynamischem SQL ausgeführt wird. Wenn Sie diese Rücksetzung dem Fehlschlag der Anwendung bei ihrem Start bevorzugen, behalten Sie das Standardverhalten bei.
In einigen Fällen wie bei der statischen Ausführung von SQL-Anweisungen ist es möglicherweise jedoch problematisch oder unmöglich, die Anwendung mit dem Standardverhalten auszuführen. Beispielsweise wurde die Berechtigung zum dynamischen Vorbereiten und Ausführen von SQL-Anweisungen eventuell nicht allen Anwendungsbenutzern erteilt. In diesen Fällen müssen Sie die pureQuery Runtime-Eigenschaft repositoryRequired mit dem Wert atStartUp angeben.
Wenn die Erfassung von Ausgabedaten während der Anwendungsausführung kritisch ist, kann pureQuery Runtime die Verfügbarkeit der Ausgabedatenbank beim Anwendungsstart prüfen. Geben Sie hierzu für die Eigenschaft repositoryRequired den Wert forOutput an. In den meisten Fällen ist diese Einstellung nicht notwendig. Wenn die Ausgabedatenbank während der Anwendungsausführung verfügbar wird, stellt pureQuery die Änderung fest und fängt an, die Ausgabe zu schreiben.
Wenn Sie sicherstellen müssen, dass Ein- und Ausgabedatenbanken von pureQueryXml verfügbar sind, können Sie für die Eigenschaft repositoryRequired den Wert atStartupAndForOutput angeben.
Diese Einstellung kann auch während der Erstkonfiguration eine nützliche Option sein, um sicherzustellen, dass alles ordnungsgemäß konfiguriert ist, und um die längere Ausführung der Anwendung mit falschen Konfigurationsangaben zu vermeiden.
- Intervall für automatische Aktualisierung
- Sie können die pureQuery-Funktionalität zum automatischen Aktualisieren der pureQuery Runtime-Eigenschaften und von pureQueryXML für Anwendungen mit langer Laufzeit und zwischengespeicherte Verbindungen über die Eigenschaft propertiesRefreshInterval aktivieren.
Diese Funktionalität ist zwar standardmäßig ausgeschaltet, aber Sie können das periodische Abfragen und Aktualisieren durch die Angabe eines positiven Ganzzahlwerts für die Anzahl Minuten zwischen Aktualisierungsversuchen aktivieren.
Anwendungen, die häufige Wartungsaktualisierungen empfangen, und Frameworks, die weiterhin SQL generieren, das zuvor nicht erfasst wurde, sind gute Kandidaten für die Aktualisierung. Das angegebene Intervall hängt davon ab, wie schnell Updates implementiert werden müssen. Bei vielen Anwendungen reicht eine einmalige Aktualisierung pro Tag (durch die Angabe von 1440 für propertiesRefreshInterval) aus.
Während der ursprünglichen Anwendungskonfiguration einschließlich Erfassung und beim ersten Umschalten von dynamisch auf statisch benötigen Sie möglicherweise ein häufigeres Intervall wie 10 Minuten, um die Änderungen schnell zu aktualisieren.
In vielen Fällen können Sie diese Funktionalität inaktiviert lassen. Wenn es für Ihre Anwendung nach der Implementierung wenige oder keine Wartungsaktualisierungen gibt und wenn praktisch das gesamte SQL erfasst und gebunden wurde, ist es nicht notwendig, die Ausführung im Modus für kontinuierliche Erfassung vorzunehmen oder die automatische Aktualisierung zu aktivieren. Wenn es für Sie zudem einfach ist, Ihre Anwendung und Ihren Anwendungsserver erneut zu starten, wenn pureQuery Runtime neue Laufzeiteigenschaften oder eine neue pureQueryXML-Instanz feststellen soll, brauchen Sie die Funktionalität für automatische Aktualisierung nicht zu verwenden.
Wenn Sie die automatische Aktualisierung aktiviert haben und später das Aktualisierungsintervall ändern wollen, während die Anwendung aktiv ist, können Sie hierfür den Eigenschaftswert im Datenbankrepository ändern. pureQuery stellt die Änderung beim nächsten Intervall fest und schaltet im Folgenden auf den neuen Wert um.