Vous définissez les propriétés d'exécution pureQuery au niveau de
la source de données. Les propriétés de l'exécution pureQuery récupérées à
partir du répertoire sont également définies au niveau de la source de données. Une
fois que vous avez redémarré l'application, l'exécution pureQuery capture les
instructions SQL renvoyées par l'application.
Avant de commencer
Vérifiez que WebSphere Application
Server exécute une application dynamique. L'application utilise une source de
données avec le nom JNDI jdbc/nobleDS disponible pour le fournisseur DB2.
Pourquoi et quand exécuter cette tâche
Vous créez des propriétés personnalisées du fournisseur JDBC
WebSphere pour la source de données. Les
propriétés sont utilisées par l'exécution pureQuery et IBM® Data
Server Driver for JDBC and SQLJ.
La propriété personnalisée
pdqProperties pour l'exécution pureQuery pointe vers le
référentiel que vous avez créé dans la tâche,
Scénario : Création et configuration d'un référentiel pour l'exécution pureQuery. La
propriété
dataSourceName pour le pilote
DB2 spécifie la base de données de
transactions en tant que source de données. Le tableau suivant répertorie les
propriétés WebSphere et leurs
valeurs :
Tableau 1. Propriétés personnalisées WebSphere Nom de propriété de source de données
personnalisée WebSphere |
Valeur |
pdqProperties |
finalRepositoryProperties(ds://jdbc/nobleDS),
propertiesGroupId(testApp), repositoryRequired(atStartup), propertiesRefreshInterval(2) |
dataSourceName |
nobleDS |
Lorsque vous indiquez les propriétés de source de données personnalisées pdqProperties et dataSourceName, vous indiquez les propriétés pureQuery Runtime pour la source de données.
Remarque : Si vous définissez les propriétés pureQuery Runtime pour la source de données avec la chaîne pdqProperties, celles-ci remplacent la propriété de source de données personnalisée dataSourceName.
Procédure
Pour définir les propriétés de source de données personnalisées sur un
serveur WebSphere Application Server :
- Définissez la propriété de source de données personnalisée
pdqProperties sur la source de données.
Dans la console d'administration, accédez à la fenêtre
Propriétés personnalisées.
.
Créez une propriété appelée pdqProperties.
Pour spécifier la propriété personnalisée des propriétés d'exécution pureQuery,
définissez les valeurs suivantes :
finalRepositoryProperties(ds://jdbc/nobleDS),
propertiesGroupId(testApp), repositoryRequired(atStartup), propertiesRefreshInterval(2)
La propriété personnalisée WebSphere
spécifie les propriétés d'exécution pureQuery suivantes :
- finalRepositoryProperties
- Cette valeur spécifie l'emplacement du référentiel qui stocke les propriétés
d'exécution pureQuery qui sont utilisées par l'application.
Dans ce scénario, la valeur est la source de données ds://jdbc/nobleDS. La base de
données de référentiel est identique à la base de données de transactions.
- propertiesGroupId
- Cette valeur spécifie l'ID de groupe d'exécution qui stocke les propriétés
d'exécution de pureQuery et les données pureQueryXML de l'application. La valeur de
propertiesGroupId doit être un ID de groupe d'exécution défini
dans le référentiel spécifié dans une base de données. Dans le scénario,
le référentiel se trouve dans la base de données spécifiée par la source de données
jdbc/nobleDS. La valeur de l'option propertiesGroupId est l'ID du groupe
d'exécution que vous avez créé à la rubrique Scénario : Création et configuration d'un référentiel pour l'exécution pureQuery.
- repositoryRequired
- Cette valeur spécifie le comportement de l'exécution pureQuery si le
référentiel n'est pas disponible. Dans le scénario, la valeur est
atStartup.
Lors du démarrage de l'application, le référentiel doit lire les propriétés de
l'exécution pureQuery et les données pureQueryXML à partir du référentiel.
Si le référentiel n'est pas disponible ou que des erreurs de lecture sont détectées,
une exception est envoyée à l'application. Les valeurs suivantes sont les autres
valeurs autorisées pour la propriété repositoryRequired :
- La valeur forOutput spécifie qu'une exception
est envoyée à l'application si le référentiel qui stocke les données SQL capturées
n'est pas disponible lorsque l'exécution pureQuery tente d'écrire dans le
référentiel pour la première fois.
- La valeur atStartupAndForOutput spécifie que le
comportement de l'exécution pureQuery pour atStartup et forOutput est activé.
Si
la propriété repositoryRequired n'est pas spécifiée et que
l'emplacement défini par l'option finalRepositoryProperties
n'est pas disponible, l'exécution pureQuery exécute les instructions SQL de
façon dynamique jusqu'à ce que le référentiel devienne disponible.
Conseil : Si
l'application doit exécuter des instructions SQL de façon statique ou avec
différentes substitutions SQL, vous devriez alors spécifier la propriété
repositoryRequired avec la valeur atStartup ou atStartupAndForOutput.
- propertiesRefreshInterval
- Cette valeur spécifie l'intervalle d'attente, en minutes, entre chaque
vérification de mise à jour des propriétés d'exécution pureQuery ou des données
pureQueryXML qui sont stockées à l'emplacement spécifié par la propriété
finalRepositoryProperties.
L'exécution pureQuery ne recherche les mises à jour des propriétés que si la
propriété propertiesRefreshInterval fait partie des propriétés
récupérées et que sa valeur est un entier positif.
Remarque : Vous pouvez modifier
l'intervalle de régénération une fois que l'exécution pureQuery a récupéré les
propriétés. Vous pouvez définir la propriété
propertiesRefreshInterval comme une propriété utilisée lors du
démarrage de l'application. Vous pouvez également la définir comme une propriété
récupérée depuis l'emplacement spécifié par la propriété
finalRepositoryProperties.
Si le référentiel n'est pas indispensable au démarrage, vous pouvez indiquer différents intervalles de rafraîchissement en fonction de la disponibilité du référentiel. L'intervalle de rafraîchissement indiqué par l'application s'applique jusqu'à ce que le référentiel soit disponible. Dès que le référentiel est disponible, le système applique l'intervalle de rafraîchissement extrait de l'emplacement indiqué par la propriété finalRepositoryProperties.
- Définissez la propriété de source de données personnalisée WebSphere
dataSourceName.
Dans le panneau Propriétés personnalisées, créez une propriété
personnalisée DB2 Universal JDBC dataSourceName.
Définissez la valeur par une chaîne appropriée identifiant la source de données.
Dans le scénario, la valeur est définie par nobleDS.
- Redémarrez WebSphere Application
Server.
Le serveur d'applications redémarre en tenant compte des modifications
apportées à la variable CLASSPATH du fournisseur et à la source de données qui
sont spécifiées par les propriétés personnalisées.
Résultats
Lorsque la propriété personnalisée du fournisseur JDBC WebSphere
pdqProperties est reconnue par
WebSphere pour la source de données,
toutes les connexions créées à partir de cette source de données sont activées avec
l'optimisation client pureQuery. La propriété d'exécution de pureQuery
finalRepositoryProperties spécifie l'emplacement du
référentiel dans lequel les propriétés de l'exécution pureQuery sont stockées. La
propriété de l'exécution pureQuery propertiesGroupId indique le
groupe d'exécution dans le référentiel.
Etant donné que les propriétés
pureQuery et la propriété propertiesRefreshInterval sont
récupérées à partir du référentiel, vous pouvez mettre à jour les
informations de configuration pureQuery, les propriétés pureQuery ainsi que les
données pureQueryXML sans redémarrer le serveur d'applications. L'application
recherchera les mises à jour des informations et récupérera et utilisera les
informations mises à jour.
Conseil : Si plusieurs applications partagent
la source de données, vous pouvez remplacer les propriétés de l'exécution pureQuery
au niveau de l'application.
Que faire ensuite
Dans la tâche suivante, vous lancerez l'application
WebSphere afin d'exécuter des
instructions SQL.
L'exécution pureQuery capture les instructions SQL et les données SQL associées et
stocke les données dans le référentiel.