Sie legen pureQuery Runtime-Eigenschaften fest, um den Betrieb von pureQuery Runtime zu steuern. Sie können den Umfang der pureQuery Runtime-Eigenschaften steuern, indem Sie die Eigenschaft an einer WebSphere-Position festlegen.
Wenn Sie eine Eigenschaft an mehreren Positionen festlegen, ermittelt pureQuery Runtime, welcher Wert basierend auf der Position Ausführungspriorität hat.
WebSphere ermittelt anhand der Position den Umfang der Eigenschaft und die Ausführungspriorität, wenn eine Eigenschaft an mehreren Positionen angegeben ist.
Die Umfangsebenen für WebSphere haben die folgende Ausführungspriorität:
- Anwendungsebene: Die pureQuery-Eigenschaften gelten für die WebSphere-Anwendung. Die
pureQuery Runtime-Eigenschaftseinstellungen auf der Anwendungsebene überschreiben die Einstellungen auf der globalen Ebene und auf der Datenquellenebene für dieselbe Eigenschaft. Andernfalls werden die pureQuery Runtime-Eigenschaften mit den pureQuery-Eigenschaften für die globale Ebene und die Datenquellenebene zusammengeführt.
- Datenquellenebene: Die pureQuery-Eigenschaften gelten für alle Verbindungen, die aus der Datenquelle erstellt werden. Die Eigenschaftseinstellungen für die Datenquellenebene überschreiben die Eigenschaftseinstellungen für die globale Ebene, wenn auf beiden Ebenen dieselbe Eigenschaft definiert ist. Andernfalls werden die pureQuery Runtime-Eigenschaften mit den pureQuery-Eigenschaften für die globale Ebene zusammengeführt.
- Globale Ebene: Die pureQuery-Eigenschaften gelten für alle Anwendungen von WebSphere Application
Server.
Mit der pureQuery Runtime-Eigenschaft finalRepositoryProperties können Sie Laufzeiteigenschaften aus einem Dateisystem oder Repository in einer Datenbank abrufen. Das Abrufen von Eigenschaften aus einem Dateisystem oder Repository wirkt sich auf die Ausführungspriorität aus.
- Dateisystem oder Repository angeben
Bevor pureQuery Runtime-Eigenschaften aus der über die Eigenschaft finalRepositoryProperties angegebenen Position abgerufen und festgelegt werden, werden die pureQuery-Clientoptimierung und vorhandene pureQuery Runtime-Eigenschaften auf die Standardwerte zurückgesetzt. Alle auf der Datenquellenebene festgelegten Eigenschaften werden nicht gespeichert. Eigenschaften, die als globale pureQuery-Eigenschaften abgerufen und gesetzt werden, sind nicht betroffen.
Die folgenden Beispiele zeigen, wie pureQuery Runtime-Eigenschaftseinstellungen ermittelt werden:
- Wenn eine Eigenschaft auf mehreren Ebenen festgelegt ist, ermittelt die Ebene, welcher Wert verwendet wird. Wenn z. B. der Wert von captureMode in der globalen Eigenschaftendatei pdq.properties auf OFF gesetzt ist, wird der Wert in pdqProperties auf der Datenquellenebene für die von der Anwendung verwendeten Datenquelle auf ON gesetzt und in pdq.appwide.properties auf der Anwendungsebene auf OFF gesetzt. Die Einstellung auf der Anwendungsebene hat Vorrang und der Wert der Eigenschaft captureMode wird auf OFF gesetzt.
- Wenn pureQuery Runtime-Eigenschaften mit der Eigenschaft finalRepositoryProperties aus einem Dateisystem oder Repository abgerufen werden, hat der Wert der an der Position angegebenen Eigenschaft captureMode unabhängig von der Eigenschaftseinstellung auf der globalen, Datenquellen- oder Anwendungsebene Vorrang. Wenn z. B. captureMode in pdqProperties auf der Datenquellenebene für die von der Anwendung verwendeten Datenquelle auf ON gesetzt ist und wenn die Eigenschaft finalRepositoryProperties auch festgelegt ist, ruft pureQuery Runtime die Eigenschaften aus der Position ab, die durch die Eigenschaft finalRepositoryProperties angegeben ist.
Wenn die Eigenschaft captureMode in den abgerufenen Eigenschaften nicht festgelegt ist, wird sie auf den Standardwert OFF gesetzt. Wenn der Wert der Eigenschaft captureMode als abgerufene Eigenschaft festgelegt ist, wird dieser Wert verwendet.
Umfang der pureQuery Runtime-Eigenschaften in einer WebSphere-Umgebung steuern
In
einer WebSphere-Umgebung legen Sie die pureQuery Runtime-Eigenschaften an anderen Positionen fest, um den Umfang der Eigenschaften zu steuern. Die Position beeinflusst auch die Ausführungspriorität, wenn eine Eigenschaft an mehreren Positionen festgelegt ist.
- Position für globalen Umfang
Geben Sie die pureQuery Runtime-Eigenschaften in der Eigenschaftendatei pdq.properties an und nehmen Sie die Datei in CLASSPATH des WebSphere-JDBC-Providers auf.
Wenn Sie mit der Datei pdq.properties globale Eigenschaften festlegen, ordnen Sie die Datei pdq.properties in CLASSPATH des JDBC-Providers mit den pureQuery-JAR-Dateien an. Die Eigenschaften, die in CLASSPATH des JDBC-Providers festgelegt sind, gelten für alle Anwendungen, die den Treiber verwenden. Eigenschaften, die für eine bestimmte Anwendung oder Datenquelle gelten, dürfen hier nicht angegeben werden.
Anmerkung: Wenn Sie die dynamische Ausführung von SQL-Anweisungen in der Datei pdq.properties in den statischen Modus ändern, muss der Anwendungsserver neu gestartet werden, um die Änderungen umzusetzen. Da die Eigenschaften auf alle Datenquellen angewendet werden, die den betreffenden JDBC-Provider verwenden, werden alle Anwendungen im selben Ausführungsmodus ausgeführt, und alle erfassten SQL-Anweisungen werden in derselben pureQueryXml-Datei erfasst.
- Position für Umfang auf Datenquellenebene
Geben Sie die angepasste JDBC-Treibereigenschaft pdqProperties für die WebSphere-Datenquelle an.
Benutzer können die pureQuery Runtime-Eigenschaften für jede Datenquelle festlegen. Die Datenquellenebene ist geeignet, wenn die Einstellung für jede einzelne Datenquelle unabhängig sein muss. Wenn die Anwendung z. B. mehrere eindeutige Datenquellen verwendet, erfasst jede Datenquelle das entsprechende SQL in ihrer eigenen pureQueryXML-Datei.
Wenn die Eigenschaften in der Datenquelle festgelegt sind, gelten sie für alle Anwendungen, die diese Datenquelle verwenden. Wenn Anwendungen eine Datenquelle gemeinsam nutzen, werden die erfassten SQL-Anweisungen daher in einer einheitlichen Datei für alle Anwendungen erfasst.
Bei jeder Änderung der Eigenschaftenwerte muss der Anwendungsserver erneut gestartet werden, damit er die neuen Werte verwenden kann.
- Position für Umfang auf Anwendungsebene
Aktivieren Sie pureQuery
Runtime-Eigenschaften für den Umfang auf Anwendungsebene mit mindestens einer der beiden folgenden Eigenschaftendateien in CLASSPATH der Anwendung:
Die Datei pdq.appwide.properties gibt die anwendungsspezifischen
pureQuery-Eigenschaften an. Alle Eigenschaftswerte, die in dieser Datei angegeben werden, werden auf alle Datenquellen angewendet, die die Anwendung verwendet.
Die Datei pdq.Name-der-Datenquelle.properties gibt die datenquellenspezifischen Eigenschaften für eine Anwendung an. Die in dieser Datei angegebenen Eigenschaften gelten nur für die von der Anwendung verwendete Datenquelle. Name-der-Datenquelle ist der Zeichenfolgewert der angepassten WebSphere-Eigenschaft dataSourceName für die Datenquelle.
Diese angepasste Eigenschaft wird mit Schritten festgelegt, die den Schritten ähneln, die zum Festlegen der angepassten WebSphere-Eigenschaft pdqProperties verwendet werden.
Bei Anwendungen, die den Datenquellennamen Name-der-Datenquelle verwenden, haben die in pdq.Name-der-Datenquelle.properties angegebenen Eigenschaften Vorrang vor den durch pdq.appwide.properties angegebenen Eigenschaften.
Sie können diese pureQuery Runtime-Eigenschaftendateien an einer der folgenden Positionen in einer WebSphere-Installation anordnen:
- Unter 'WEB-INF/classes' für die Webanwendung
- Unter dem Verzeichnis 'WEB-INF/lib' als JAR-Datei
- Direkt unter dem installierten Anwendungsverzeichnis
Wenn sich ein Webmodul in der Anwendung befindet, sind nur die beiden ersten Optionen realisierbar. Bei EJB-Anwendungen können Sie eine beliebige der drei oben genannten Positionen verwenden.Wenn eine Anwendung anwendungsspezifische Eigenschaftendateien wie pdq.appwide.properties oder pdq.Name-der-Datenquelle.properties verwendet und wenn die neuen Eigenschaften bei der Änderung von Eigenschaften wirksam werden sollen, müssen Sie den WebSphere-Verbindungspool bereinigen und die Anwendung erneut starten, anstatt den Anwendungsserver erneut zu starten, damit die neuen Eigenschaftswerte wirksam werden.
- Position ist Dateisystem oder Repository
Sie geben ein Dateisystem oder Repository in einer Datenbank mit der pureQuery Runtime-Eigenschaft finalRepositoryProperties an.
Die Eigenschaft kann auf der globalen Ebene, Datenquellenebene oder Anwendungsebene angegeben werden.
pureQuery Runtime wendet die folgenden Regeln beim Abrufen von Eigenschaften aus einer Position an, die durch die Eigenschaft
finalRepositoryProperties angegeben wird:
- Eigenschaften, die von finalRepositoryProperties geladen werden, wirken sich nur auf die Anwendung aus, die sie lädt.
- Eigenschaften, die von finalRepositoryProperties geladen werden und die für die pureQuery-Clientoptimierung oder pureQuery Runtime nicht gültig sind, werden ignoriert und protokolliert, wenn die Protokollierung aktiviert ist. Dieses Verhalten entspricht dem Verhalten bei Eigenschaften auf Datenquellenebene oder Anwendungsebene.
- Der Wert für die Eigenschaft finalRepositoryProperties wird ignoriert, wenn sie aus der Position abgerufen wird, die von der ursprünglichen Eigenschaft finalRepositoryProperties angegeben wird.
pureQuery Runtime unterstützt nicht mehrere Ebenen der Umleitung für die Eigenschaft finalRepositoryProperties.
- Sie geben neben der Eigenschaft finalRepositoryProperties die pureQuery Runtime-Eigenschaft propertiesGroupId an, um die Laufzeitgruppenversion in einem Repository anzugeben, das in einer Datenbank erstellt ist und über das die Anwendung die pureQuery-Daten abruft.
Der Wert für die Eigenschaft propertiesGroupId wird ignoriert, außer er wird für ein in einer Datenbank erstelltes Repository verwendet. Wenn ein Repository verwendet wird, können Sie den Wert der Eigenschaft propertiesGroupId in den umgeleiteten Eigenschaften nicht ändern.
- Die pureQuery Runtime-Eigenschaften, die aus der durch die Eigenschaft finalRepositoryProperties angegebenen Position abgerufen werden, werden nur für die automatische Eigenschaftenaktualisierung aktiviert, wenn die Eigenschaft propertiesRefreshInterval eine der aus der Position abgerufenen Eigenschaften ist und auf einen positiven Wert gesetzt ist. Jede Anwendung kann eine andere Eigenschaft propertiesRefreshInterval haben, die in den aus finalRepositoryProperties abgerufenen Eigenschaften definiert ist.
Die pureQuery Runtime-Eigenschaft repositoryRequired steuert das Verhalten von pureQuery Runtime, wenn ein Dateisystem oder Repository verwendet wird. Sie geben die Eigenschaft an einer WebSphere-Position an, um das pureQuery Runtime-Verhalten zu steuern. Der Wert der Eigenschaft repositoryRequired kann durch die Festlegung der Eigenschaft repositoryRequired als eine der abgerufenen Eigenschaften überschrieben werden.