Exemple : exécution d'instructions SQL en mode statique à partir d'une application CLI ou .NET

Une interface CLI ou une application .NET activée avec l'optimisation client pureQuery peut être configurée pour exécuter des instructions SQL en mode 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 ou .NET 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 pureQuery Runtime pdq.jar et pdqmgmt.jar, ainsi que les fichiers JAR de Data Server Driver doivent être répertoriés dans la variable CLASSPATH sur l'ordinateur où s'exécutent les utilitaires.

Pourquoi et quand exécuter cette tâche

Cette tâche suppose que votre application CLI ou .NET se connecte à une base de données DB2 et que vous pouvez vous connecter à la base de données avec 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 ou .NET pour capturer des instructions SQL émises par l'application, puis vous configurez l'application afin qu'elle exécute les instructions en mode statique.

Procédure

Pour exécuter les instructions SQL en mode statique à partir d'une application CLI ou .NET :

  1. Définissez les mots-clés pureQuery dans votre fichier de configuration d'application pour capturer des instructions SQL émises par votre application.
    • Si vous utilisez un fichier de configuration db2cli.ini pour votre application CLI, définissez les mots-clés pureQuery suivants :
      captureMode=ON
      executionMode=DYNAMIC
      pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    • Si vous utilisez un fichier db2dsdriver.cfg pour une application CLI ou .NET, définissez les mots-clés en tant qu'attributs dans les éléments de paramètre :
      <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 afin d'exécuter des instructions SQL en mode 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 pureQuery Configure pour configurer le fichier pureQueryXML avec le nom de package et l'ID collecte.

      A l'invite de commande, exécutez l'utilitaire Configure pour ajouter des informations au fichier pureQueryXML, comme le nom de package et l'ID collecte, qui sont utilisés 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 packages sur le serveur DB2 cible et lier ces packages.
      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 la valeur du mot-clé executionMode du fichier de configuration d'application pour exécuter les instructions capturées en mode statique. La valeur du mot-clé passe de DYNAMIC à STATIC
    • Si vous utilisez un fichier de configuration db2cli.ini pour votre application CLI, changez la ligne qui contient le mot-clé :
      captureMode=ON
      executionMode=STATIC
      pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
    • Si vous utilisez un fichier db2dsdriver.cfg pour une application CLI ou .NET, changez l'attribut dans l'élément de paramètre :
      <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 d'instructions SQL consiste à définir la valeur du mot-clé captureMode en OFF et à ajouter le mot-clé et la valeur capturedOnly=TRUE.

Dans un fichier de configuration db2cli.ini, les paramètres de mot-clé sont similaires aux mots-clés suivants :

captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:\testapp\Sample1Cptr.pdqxml
Pour un fichier db2dsdriver.cfg, 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