Pour une application CLI qui est activée avec l'optimisation client pureQuery et qui se connecte à une base de données
DB2, vous pouvez configurer l'application afin
d'exécuter les instructions SQL de façon statique.
Lors du processus de configuration, vous exécutez les utilitaires pureQuery de
configuration et StaticBinder basés sur Java pour créer des packages sur la base de
données et lier les packages.
Avant de commencer
Sur l'ordinateur sur lequel vous exécutez l'utilitaire Configure
et l'utilitaire StaticBinder, vous devez installer et activer pureQuery Runtime.
Les fichiers JAR de pureQuery Runtime, pdq.jar et pdqmgmt.jar, doivent être
répertoriés dans la variable CLASSPATH. Les produits suivants doivent également être
installés sur l'ordinateur :
- Java Runtime Environment
(JRE) version 1.5 ou suivante
- IBM® Data Server Driver for
JDBC and SQLJ version 3.57.xx
Pourquoi et quand exécuter cette tâche
Après avoir capturé les données SQL dans un fichier pureQueryXML, vous
copiez le fichier sur un ordinateur où pureQuery Runtime est installé.
Vous
exécutez les utilitaires de configuration et StaticBinder sur cet ordinateur puis
vous copiez à nouveau le fichier pureQueryXML mis à jour sur l'ordinateur où
s'exécute l'application CLI.
L'utilitaire Configure met à jour le
fichier pureQueryXML afin qu'il soit utilisé par l'utilitaire StaticBinder. L'application
CLI utilisée pour capturer les données SQL fait également appel au fichier
pureQueryXML pour déterminer les instructions SQL qui doivent être exécutées
en mode statique.
Procédure
Pour configurer les applications CLI afin qu'elles exécutent
les instructions SQL en mode statique dans les bases de données DB2 :
- Copiez le fichier pureQueryXML sur l'ordinateur où
pureQuery Runtime est installé.
Vérifiez que le fichier pureQueryXML n'est pas en cours d'écriture lorsque vous le récupérez. Si vous récupérez le fichier pendant son écriture, le contenu du fichier risque
de ne pas être valide ou l'application risque de ne pas pouvoir mettre à jour le
fichier, ce qui produirait une erreur E-S.
Vous pouvez utiliser l'option -validateXml avec l'utilitaire Configure pour vérifier la validité du fichier. L'option
-validateXml est prise en charge avec
pureQuery Runtime version 2.2.0.3 et suivante.
- Configurez le fichier pureQueryXML avec l'utilitaire Configure pureQuery.
La commande de l'exemple suivant configure le fichier pureQueryXML capture.pdqxml. L'option
-rootpkgname spécifie la chaîne de base utilisée par
l'utilitaire StaticBinder pour créer des noms de packages à partir des
informations SQL pureQueryXML. L'option
-validateXml spécifie
que l'utilitaire Configure effectue la validation de schéma XML pour
vérifier que le fichier pureQueryXML est conforme au schéma pureQuery XML.
java com.ibm.pdq.tools.Configure -rootpkgname TESTPKG
-validateXml TRUE
-pureQueryXml capture.pdqxml
- Exécutez l'utilitaire pureQuery StaticBinder pour créer un package sur la
base de données cible et lier les packages sur la base de données.
La commande de l'exemple suivant crée des packages et les lie sur la base de
données qui est spécifiée par l'option
-url.
Les packages contiennent des instructions SQL provenant du fichier pureQueryXML
capture.pdqxml. L'option
-isolationLevel spécifie que
l'utilitaire StaticBinder crée des packages uniquement pour le niveau d'isolement
de lecture non reproductible.
java com.ibm.pdq.tools.StaticBinder
–url "jdbc:db2://testserver.test.com:446/STLEC1"
-username "testuser" -password "testpwd"
-isolationLevel "CS"
-pureQueryXml "capture.pdqxml"
Par défaut, l'utilitaire StaticBinder crée quatre packages pour un fichier
pureQueryXML donné, un pour chaque type de niveau d'isolement. Cet exemple
spécifie le niveau d'isolement de lecture non reproductible. StaticBinder
crée un seul package pour ce niveau d'isolement.
- Copiez à nouveau le fichier pureQueryXML configuré sur l'ordinateur où
s'exécute l'application CLI dans laquelle le fichier pureQueryXML a été créé.
pureQuery Runtime utilise les informations provenant du fichier pureQueryXML
configuré afin de déterminer les instructions SQL à exécuter de façon statique.
- Dans le fichier de configuration CLI de l'application, définissez la
valeur du mot clé pureQuery executionMode par STATIC.
Par exemple, dans db2cli.ini, définissez les mots clés pureQuery suivants :
executionMode=STATIC
allowDynamicSQL=TRUE
pureQueryXml=capture.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="executionMode" value="STATIC" />
<parameter name="allowDynamicSQL" value="TRUE" />
<parameter name="pureQueryXml" value="capture.pdqxml" />
Avec les valeurs de mots clés allowDynamicSQL=TRUE,
pureQuery Runtime exécute les instructions SQL de façon dynamique si
l'instruction SQL ne figure pas dans le fichier pureQueryXML capture.pdqxml.
La valeur par défaut du mot clé pureQuery allowDynamicSQL est
TRUE et n'est pas obligatoire dans le fichier de propriétés. Placer la propriété dans le fichier permet de se souvenir de la valeur par défaut.
- Exécutez ou redémarrez l'application pour utiliser les informations mises à
jour dans le fichier de configuration et le fichier pureQueryXML.
L'application CLI lit les mots clés pureQuery mis à jour et les informations
pureQueryXML et exécute les instructions SQL de façon statique.
Que faire ensuite
Si vous capturez de nouvelles instructions SQL dans le fichier
pureQueryXML, vous pouvez utiliser les utilitaires de configuration et
StaticBinder pour mettre à jour ou créer les nouveaux packages et les lier sur la
base de données.