Exemple : Exécution d'instructions SQL en mode statique à partir d'une application CLI

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 :

  1. 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.

  2. Exécutez votre application afin de capturer les instructions SQL dans le fichier pureQueryXML.

    Les instructions SQL sont capturées dans le fichier pureQueryXML.

  3. Configurez le fichier pureQueryXML qui contient les instructions SQL capturées et liez ces dernières.
    1. Si nécessaire, copiez le fichier pureQueryXML sur l'ordinateur où les fichiers d'exécution pureQuery sont installés.
    2. 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
    3. 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
    4. Si nécessaire, remplacez le fichier pureQueryXML sur l'ordinateur où l'application s'exécute avec le fichier pureQueryXML configuré.
  4. 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" />
  5. 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.


Commentaires