Une application d'interface CLI qui est activée avec l'optimisation client pureQuery peut être configurée pour exécuter les instructions SQL
de façon statique sur une base de données DB2.
Exécuter statiquement des instructions SQL évite de les préparer lors de l'exécution
et peut améliorer la sécurité et les performances de l'application.
Avant de commencer
Activation de votre application CLI avec
l'optimisation client pureQuery.
Sur l'ordinateur sur lequel vous
exécutez les utilitaires de configuration et StaticBinder pureQuery basés sur Java,
vous devez installer et activer l'exécution pureQuery. Vous devez installer les
produits suivants sur l'ordinateur :
- Java Runtime Environment
(JRE) version 1.5 ou suivante
- IBM® Data Server Driver for
JDBC and SQLJ version 3.57.xx
Les fichiers JAR d'exécution pureQuery,
pdq.jar et pdqmgmt.jar, ainsi que les fichiers JAR de Data Server Driver doivent
être répertoriés dans la variable CLASSPATH de l'ordinateur sur lequel vous
exécutez les utilitaires.
Pourquoi et quand exécuter cette tâche
Cette tâche suppose que votre application CLI se connecte à une base de
données DB2 et que vous vous connectiez à la base de données à l'aide de
l'URL de connexion suivante :
jdbc:db2://svl01:500/DB2M -user user01 -password myPass
Vous
définissez les mots clés dans le fichier de configuration db2cli.ini afin
de configurer l'application. Vous configurez votre application CLI pour capturer les
instructions SQL qui sont lancées par l'application, puis vous configurez l'application
pour exécuter les instructions de façon statique.
Procédure
Pour exécuter les instructions SQL de façon statique à partir d'une
application CLI :
- Définissez les mots clés pureQuery dans votre fichier de configuration
d'application CLI afin de capturer les instructions SQL envoyées par
l'application.
Dans le fichier de configuration db2cli.ini qui est utilisé par
l'application pour capturer les instructions SQL envoyées par l'application,
mettez à jour les mots clés suivants :
captureMode=ON
executionMode=DYNAMIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
Si vous utilisez un fichier db2dsdriver.cfg, une autre solution consiste à
définir les mots clés en tant qu'attributs dans les éléments des paramètres :
<parameter name="captureMode" value="ON"/>
<parameter name="executionMode" value="DYNAMIC"/>
<parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml"/>
Les paramètres de mot clé configurent votre application CLI afin
d'exécuter les instructions SQL de façon dynamique et de capturer l'instruction
qui s'est correctement exécutée dans le fichier C:\testapp\Sample1Cptr.pdqxml.
DYNAMIC est la valeur par défaut du mot clé
executionMode et n'est pas requis dans le fichier de propriétés. Placer la propriété dans le fichier permet de se souvenir de la valeur par défaut. Cette
valeur sera modifiée afin d'exécuter les instructions SQL de façon statique.
La valeur du mot clé pureQueryXml définit l'emplacement et le
nom du fichier pureQueryXML dans lequel l'optimisation client pureQuery
stocke les données SQL qui sont capturées à partir de l'application.
La valeur
correspond également à l'emplacement et au nom du fichier pureQueryXML utilisé
par l'optimisation client pureQuery pour contrôler l'exécution des instructions SQL. Lorsque vous configurez l'optimisation client pureQuery afin d'exécuter les
instructions SQL de façon statique sur une base de données DB2, l'exécution
pureQuery utilise les informations du fichier pour déterminer les instructions
SQL à exécuter.
- Exécutez votre application afin de capturer les instructions SQL dans le
fichier pureQueryXML.
Les instructions SQL sont capturées dans le fichier pureQueryXML.
- Configurez le fichier pureQueryXML qui contient les instructions SQL
capturées et liez ces dernières.
- Si nécessaire, copiez le fichier pureQueryXML sur l'ordinateur où les
fichiers d'exécution pureQuery sont installés.
- Exécutez l'utilitaire Configure pureQuery afin de configurer les
fichiers pureQueryXML avec le nom du package et l'ID collection.
A l'invite de commande, exécutez l'utilitaire Configure pour ajouter des
informations au fichier pureQueryXML, telles que le nom du package et l'ID collection, qui sont utilisées par l'utilitaire pureQuery StaticBinder. Vous pouvez également
spécifier d'autres options pour gérer les instructions SQL dans le fichier.
La commande de l'exemple suivant exécute l'utilitaire Configure et
spécifie le nom du package de base SMPL1 ainsi qu'une collecte appelée COLL01. Entrez
la commande sur une seule ligne.
java com.ibm.pdq.tools.Configure -pureQueryXml Sample1Cptr.pdqxml
-rootPkgName SMPL1 -collection COLL01
- Exécutez l'utilitaire pureQuery StaticBinder avec le fichier pureQueryXML
configuré pour créer des modules sur le serveur
DB2 cible et les lier.
A l'invite de commande, exécutez l'utilitaire StaticBinder avec des options
spécifiant la base de données et les informations de package. La commande
StaticBinder de l'exemple suivant crée des packages sur le serveur
DB2 cible et lie les packages. Entrez la
commande sur une seule ligne.
java com.ibm.pdq.tools.StaticBinder
-url jdbc:db2://svl01:500/DB2M -user user01 -password myPass
-pureQueryXml Sample1Cptr.pdqxml
- Si nécessaire, remplacez le fichier pureQueryXML sur l'ordinateur où
l'application s'exécute avec le fichier pureQueryXML configuré.
- Mettez à jour le fichier de configuration de l'application CLI afin d'exécuter
vos instructions capturées de façon statique.
Mettez à jour le mot clé pureQuery executionMode dans la
configuration db2cli.ini afin d'activer l'exécution statique des instructions SQL
envoyées par l'application. La valeur du mot clé est modifiée de
DYNAMIC à STATIC :
captureMode=ON
executionMode=STATIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
Dans un fichier db2dsdriver.cfg, vous définissez les mots clés en tant
qu'attributs dans les éléments des paramètres :
<parameter name="captureMode" value="ON" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml" />
- Exécutez ou redémarrez l'application pour utiliser les informations mises à
jour dans le fichier de configuration et le fichier pureQueryXML.
Résultats
Lorsque vous exécutez l'application, les deux instructions SQL
qui sont lancées par l'application sont exécutées de façon statique. Si vous mettez
à jour l'application et que vous modifiez ou ajoutez des instructions SQL, les
instructions SQL mises à jour ou nouvelles sont exécutées dynamiquement et sont
capturées dans le fichier pureQueryXML.
Conseil : Vous pouvez limiter
l'application afin d'exécuter uniquement les instructions SQL capturées dans le
fichier pureQueryXML. Une configuration qui limite l'exécution des
instructions SQL consiste à définir la valeur du mot clé
captureMode
par
OFF et d'ajouter le mot clé et la valeur
capturedOnly=
TRUE :
captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
Pour un fichier db2dsdriver.cfg, vous définissez les éléments de paramètre
suivants :
<parameter name="captureMode" value="OFF" />
<parameter name="capturedOnly" value="TRUE" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:\testapp\Sample1Cptr.pdqxml" />
Avec cette configuration, seules les instructions SQL du fichier pureQueryXML
sont exécutées et les instructions SQL sont exécutées de façon statique. Les
instructions SQL mises à jour ou nouvelles ne sont pas capturées dans le fichier pureQueryXML.