Vous pouvez définir les propriétés pureQuery Runtime pour contrôler les
fonctions pureQuery Runtime suivantes : Vous pouvez contrôler la portée des propriétés pureQuery Runtime en
définissant la propriété dans un emplacement
WebSphere spécifique.
Si
vous définissez une propriété à plusieurs emplacements, pureQuery Runtime
détermine la valeur à utiliser en suivant un ordre de priorité basé sur
l'emplacement.
WebSphere utilise
l'emplacement pour déterminer la portée de la propriété ainsi que l'ordre de
priorité d'une propriété si elle est définie à des emplacements multiples.
Les
niveaux de portée pour WebSphere sont
classés selon l'ordre de priorité suivant :
- Niveau d'application : les propriétés pureQuery s'appliquent à
l'application WebSphere. Les paramètres
des propriétés de pureQuery Runtime au niveau de l'application se substituent à
la fois aux paramètres de niveau global et aux paramètres de niveau de source de
données pour une même propriété. Sinon, les propriétés de pureQuery Runtime
fusionnent avec les propriétés pureQuery globales et les propriétés
pureQuery de niveau de source de données.
- Niveau de source de données : les propriétés pureQuery
s'appliquent à toutes les connexions créées à partir de la source de
données. Les paramètres de propriété de niveau de source de données remplacent les
paramètres de propriété de niveau global si la même propriété est définie aux
deux niveaux. Sinon, les propriétés de pureQuery Runtime fusionnent avec les
propriétés pureQuery de niveau global.
- Niveau global : Les propriétés pureQuery s'appliquent à l'ensemble des applications de WebSphere Application
Server.
Vous
pouvez utiliser la propriété de pureQuery Runtime
finalRepositoryProperties afin de récupérer des propriétés
d'exécution d'un système de fichiers ou d'un
référentiel dans une base de données. La récupération des propriétés à
partir d'un système de fichiers ou d'un référentiel affecte l'ordre de priorité.
- Définition d'un système de fichiers ou d'un référentiel
Avant de récupérer et de définir les propriétés de pureQuery Runtime de
l'emplacement défini par la propriété finalRepositoryProperties,
l'optimisation client pureQuery et les propriétés de pureQuery Runtime
existantes sont à nouveau paramétrées avec les valeurs par défaut. Aucune propriété
définie au niveau de la source de données n'est sauvegardée. Les propriétés récupérées et définies
comme des propriétés pureQuery globales ne sont pas affectées.
Les
exemples suivants montrent comment les paramètres des propriétés
de pureQuery Runtime sont déterminés :
- Si une propriété est définie à plusieurs niveaux, le niveau détermine la valeur
à utiliser. Par exemple, si la valeur captureMode est définie sur OFF dans le fichier de propriétés global
pdq.properties, si elle est définie sur
ON, NEW_STMTS ou LITE dans le fichier pdqProperties de niveau de source de données pour les
sources de données utilisées par l'application et est définie sur OFF dans le niveau
d'application pdq.appwide.properties, le paramètre de niveau d'application
prévaut et la valeur de la propriété captureMode est définie sur OFF .
- Si les propriétés de pureQuery Runtime sont récupérées à partir d'un
système de fichiers ou d'un référentiel à l'aide de la propriété
finalRepositoryProperties, la valeur de la propriété
captureMode qui est spécifiée dans l'emplacement prévaut
quel que soit le paramètre de propriété au niveau global, de source de données
ou de l'application. Par exemple, si la valeur de captureMode est
définie sur ON, NEW_STMTS ou LITE dans le fichier pdqProperties de niveau de source de données pour
la source de données qui est utilisée par l'application et que la propriété
finalRepositoryProperties est également définie, pureQuery Runtime récupère
les propriétés à partir de l'emplacement défini par la propriété finalRepositoryProperties.
Si la propriété captureMode n'est pas définie parmi les
propriétés récupérées, la propriété captureMode est définie
à sa valeur par défaut, OFF. Si la valeur de la propriété
captureMode est définie comme une propriété récupérée, cette
valeur est utilisée.
Contrôle de la portée des propriétés de pureQuery Runtime
dans un environnement WebSphere
Dans
un environnement WebSphere, vous
définissez les propriétés de pureQuery Runtime à différents emplacements afin
de contrôler le niveau de portée des propriétés. L'emplacement affecte également
l'ordre de priorité lorsqu'une propriété est définie dans des emplacements
multiples.
- Emplacement de portée globale
- Définissez les propriétés de pureQuery Runtime dans un fichier de
propriétés pdq.properties et incluez le fichier dans le chemin d'accès aux classes du fournisseur JDBC
WebSphere.
Lorsque vous utilisez le fichier de propriétés
pdq.properties pour définir des propriétés globales, placez le répertoire contenant le fichier
pdq.properties dans le chemin d'accès aux classes du fournisseur JDBC contenant les fichiers JAR pureQuery. Les propriétés définies dans le chemin d'accès aux classes du fournisseur JDBC s'appliquent à toutes les applications utilisant le pilote. N'indiquez pas de propriétés qui s'appliquent à une application ou à une source de données spécifique.
La propriété traceFile de pureQuery Runtime peut être spécifiée uniquement dans un fichier
pdq.properties global.
Définissez les propriétés
pureQuery Runtime globales à partir de la console d'administration de WebSphere Application Server :
- Sélectionnez le lien Fournisseurs JDBC.
- Sélectionnez le fournisseur DB2 Universal JDBC
Driver Provider ou DB2 Universal JDBC Driver
Provider (XA).
- Si nécessaire, ajoutez le répertoire contenant les fichiers JAR pureQuery à la zone
Chemin d'accès aux classes.
Remarque : N'incluez pas le nom de fichier pdq.properties.
- Appliquez les modifications au fournisseur JDBC sélectionné et enregistrez les modifications.
- Il peut s'avérer nécessaire de modifier la zone Chemin d'accès aux classes pour les fournisseurs JDBC
DB2 Universal JDBC Driver Provider et DB2
Universal JDBC Driver Provider (XA)
- Placez le fichier pdq.properties dans le répertoire indiqué dans la zone Chemin d'accès aux classes.
Lorsque le fichier pdq.properties se trouve dans le répertoire,
WebSphere Application
Server et pureQuery Runtime le trouvent.
- En fonction de votre environnement d'application, vous devez redémarrer le serveur d'applications, le serveur WebSphere Application
Server ou les deux serveurs pour que les modifications prennent effet.
Remarque : Lorsque
vous modifiez le fichier pdq.properties pour convertir les instructions SQL en
cours d'exécution du mode dynamique en mode statique, un redémarrage du serveur
d'applications est nécessaire pour refléter les changements. Puisque les propriétés sont appliquées à l'ensemble des sources de données utilisant le fournisseur JDBC spécifique, toutes les applications s'exécutent avec le même mode d'exécution, et toutes les instructions SQL sont capturées dans le même fichier
pureQueryXML lors de la capture.
- Emplacement de portée de niveau de source de données
Spécifiez la propriété personnalisée pdqProperties du
pilote JDBC sur la source de données WebSphere.
Les
utilisateurs peuvent définir les propriétés de pureQuery Runtime pour chaque
source de données. Le niveau de source de données est approprié lorsque les
paramètres de chaque source de données sont indépendants les uns des autres. Par
exemple, si l'application utilise plusieurs sources de données distinctes, chaque
source de données capture l'instruction SQL qui lui est destinée dans son propre
fichier pureQueryXML.
Lorsque les propriétés sont définies sur la source de
données, elles sont appliquées à toutes les applications qui utilisent cette
source de données. Ainsi, lorsque des applications partagent une source de données,
les instructions SQL sont capturées dans un fichier commun à toutes les
applications.
A chaque modification de la valeur de la propriété
pdqProperties de la source de données, le serveur d'applications doit être redémarré pour que le serveur d'applications puisse utiliser les nouvelles valeurs.
- Emplacement de la portée de niveau application
Activez les propriétés
de pureQuery Runtime sur la portée de niveau application en utilisant un
ou plusieurs des fichiers de propriété suivants dans la variable CLASSPATH de
l'application :
Le
fichier pdq.appwide.properties définit les propriétés pureQuery spécifique à
l'application. Toutes les valeurs de propriété qui sont spécifiées dans ce fichier
seront appliquées à toutes les sources de données que l'application utilise.
Le
fichier pdq.DSName.properties définit les propriétés spécifiques
aux sources de données d'une application. Les propriétés spécifiées dans ce fichier
seront uniquement appliquées à la source de données spécifique utilisée par
l'application. DSName est la valeur de chaîne de la propriété
personnalisée WebSphere
dataSourceName correspondant à la source de données.
Cette propriété personnalisée est définie à l'aide d'étapes similaires aux étapes
utilisées pour définir la propriété personnalisée
WebSphere
pdqProperties.
Pour les applications
qui utilisent le nom de source de données DSName, les propriétés
spécifiées dans pdq.DSName.properties sont prioritaires sur
celles spécifiées par pdq.appwide.properties.
Vous pouvez créer un fichier JAR contenant les fichiers de propriétés
pureQuery Runtime et placer le fichier JAR directement sous le répertoire d'application de l'installation
WebSphere.
Puis, mettez à jour le fichier MANIFEST.MF de tous les modules utilisant les propriétés pureQuery
Runtime.
Si une application utilise des fichiers de propriétés qui
lui sont spécifiques, tels que les fichiers pdq.appwide.properties ou
pdq.dsName.properties, vous devez purger le pool de connexions
WebSphere et redémarrer
l'application et non le serveur d'applications afin que les nouvelles
valeurs de propriétés prennent effet après leur changement.
Dans l'exemple suivant, les propriétés
pureQuery Runtime se trouvent dans le fichier pdq.appwide.properties
et le projet Web dynamique (.war file) est intégré à un fichier .ear. Après avoir déployé l'application dans un environnement
WebSphere, le répertoire installedApps contient le répertoire MyAppEAR.ear. Les étapes suivantes décrivent comment activer les propriétés pureQuery Runtime au niveau de l'application :
- Créez un fichier JAR contenant le fichier pdq.appwide.properties. Dans cet exemple, le fichier est pdq_props.jar.
- Placez pdq_props.jar dans le dossier suivant :
REP_BASE_WAS/profiles/AppSrv01/installedApps/version1/MyAppEAR.ear
- Modifiez le fichier MANIFEST.MF de l'ensemble des modules utilisant les propriétés pureQuery
Runtime. Dans cet exemple, le fichier d'archives Web MyApp.war utilise les propriétés et le fichier
MANIFEST.MF se trouve dans le répertoire suivant :
REP_BASE_WAS/profiles/AppSrv01/installedApps/version1/MyAppEAR.ear/MyAppEAR.war/META-INF/MANIFEST.MF
Ajoutez l'entrée
Class-Path suivante au fichier pdq_props.jar :
Class-Path: pdq_props.jar
L'entrée se trouve sur une ligne unique du fichier MANIFEST.MF, avec un espace entre la propriété et le nom de fichier.
Si les modules d'une application utilisent des sources de données différentes, vous pouvez spécifier des propriétés pureQuery Runtime pour chaque source de données.
Dans cet exemple, une propriété JCC personnalisée de nom de source de données est définie sur la source de données. Dans cet exemple, deux sources de données différentes portant les noms DS1 et DS2 existent dans l'environnement WebSphere Application Server.
Dans cet exemple, l'application comprend deux modules :
- Le module Web Web1 qui utilise la source de données DS1
- Le module EJB EJB1 qui utilise la source de données DS2
Vous créez deux fichiers de propriétés pureQuery Runtime pour chaque source de données.
- pdq.DS1.properties
- pdq.DS2.properties
Créez un fichier JAR contenant les deux fichiers pureQuery
Runtime et placez-le dans le répertoire de l'application installée comme décrit précédemment.
- L'emplacement est un système de fichiers ou un référentiel
Vous spécifiez un système de fichiers ou un référentiel dans une base de
données à l'aide de la propriété de pureQuery Runtime finalRepositoryProperties.
Cette propriété peut être définie au niveau global, au niveau de la source de
données ou au niveau de l'application.
pureQuery Runtime applique les
règles suivantes lorsqu'il récupère les propriétés à partir d'un emplacement
qui est défini par la propriété
finalRepositoryProperties :
La
propriété de pureQuery Runtime repositoryRequired contrôle le
comportement de pureQuery Runtime lorsqu'est utilisé un système de
fichiers ou un référentiel. Vous définissez cette propriété dans un emplacement
pureQuery WebSphere afin de
contrôler le comportement de pureQuery Runtime. La valeur de la propriété
repositoryRequired peut être remplacée en définissant la
propriété repositoryRequired comme l'une des propriétés
récupérées.