Scénario : Mise à jour des propriétés d'exécution pureQuery afin d'exécuter les instructions SQL de façon statique

Après avoir créé des packages contenant des instructions SQL dans la base de données de transactions et lié les packages, vous mettez à jour les propriétés d'exécution pureQuery et les données pureQueryXML dans le référentiel afin de permettre à l'application d'exécuter des instructions SQL en mode statique. Lorsque l'application actualise les propriétés pureQuery, les instructions SQL sont exécutées de manière dynamique.

Pourquoi et quand exécuter cette tâche

Vous utilisez l'utilitaire ManageRepository pour mettre à jour les données dans le groupe d'exécution et créer une version dans le référentiel. Vous effectuez les actions suivantes :
  • Chargez les données dans le fichier pureQueryXML.
  • Mettez à jour les propriétés d'exécution pureQuery.
  • Activez la version du groupe d'exécution dans le référentiel.

Procédure

Pour mettre à jour les propriétés d'exécution pureQuery afin d'exécuter les instructions SQL de façon statique :

  1. Mettez à jour la version locale du fichier pqtest.properties et définissez la valeur de la propriété executionMode par STATIC.
    Le fichier contient le texte suivant :
    pdq.captureMode=ON
    pdq.allowDynamicSQL=TRUE
    pdq.executionMode=STATIC

    A l'aide des paramètres d'exécution pureQuery, l'application exécute les instructions SQL de façon statique si celles-ci se trouvent dans le fichier pureQueryXML. Si l'application exécute une instruction SQL qui ne figure pas dans le fichier pureQueryXML, les instructions sont capturées et exécutées dynamiquement.

  2. Créez une version du groupe d'exécution dans le référentiel.

    Créez la version V2 du groupe d'exécution testApp. Vous chargerez les propriétés d'exécution pureQuery et les données pureQueryXML dans le référentiel.

    La commande ManageRepository suivante crée la version du groupe d'exécution :
    java com.ibm.pdq.tools.ManageRepository -create runtimeGroup 
      -repositoryDriverClass  com.ibm.db2.jcc.DB2Driver 
      -repositoryURL  "jdbc:db2://testserver.test.com:32706/sample" 
      -repositoryUsername  "myuser" -repositoryPassword  "mypwd" 
      -runtimeGroupId testApp 
      -runtimeGroupVersion V2 
    Le résultat de la commande est similaire à l'exemple suivant :
    IBM Optim pureQuery runtime 2.2.0.3 build 2.18.118
    Licensed Materials - Property of IBM
    5724-U16
    (c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
    
    =========================================================
    
    Démarrage des options de processus :  -create "runtimeGroup" 
      -bind "packages" -runtimeGroupVersion "V2" 
      -repositoryURL "jdbc:db2://testserver.test.com:32706/sample" 
      -repositoryUsername "myuser" -repositoryPassword "******" 
      -repositoryDriverClass "com.ibm.db2.jcc.DB2Driver" 
      -runtimeGroupId "testApp"
    
    L'utilitaire ManageRepository a correctement créé le groupe d'exécution "testApp"
    version "V2".
  3. Mettez à jour la version du groupe d'exécution dans le référentiel à l'aide des données des fichiers pqtest.properties et pureQueryXML.
    Exécutez la commande suivante :
    java com.ibm.pdq.tools.ManageRepository 
    -update runtimeGroup 
    -repositoryDriverClass  com.ibm.db2.jcc.DB2Driver 
    -repositoryURL  "jdbc:db2://testserver.test.com:32706/sample" 
    -repositoryUsername  "myuser" -repositoryPassword  "mypwd" 
    -runtimeGroupId testApp 
    -pureQueryProperties ./pqtest.properties 
    -pureQueryXml ./testApp.pdqxml
    -runtimeGroupVersion V2
    Le résultat de la commande est similaire à l'exemple suivant :
    IBM Optim pureQuery Runtime 2.2.0.3 build 2.18.118
    Licensed Materials - Property of IBM
    5724-U16
    (c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
    
    ===================================================
    
    Démarrage des options de processus :  -update "runtimeGroup"
    -runtimeGroupVersion "v1" 
    -repositoryURL "jdbc:db2://testserver.test.com:32706/sample" 
    -repositoryUsername "*****" –repositoryPasword "*****"
    -pureQueryProperties ".\pqtest.properties" 
    -pureQueryXml "capture.pdqxml" 
    -runtimeGroupId "testApp"
    
    L'utilitaire ManageRepository a correctement mis à jour le groupe d'exécution "testApp"
    version "V2".
  4. Activez la version V2 dans le groupe d'exécution testApp.
    Exécutez la commande suivante :
    java com.ibm.pdq.tools.ManageRepository -activate runtimeGroup 
    -repositoryDriverClass  com.ibm.db2.jcc.DB2Driver 
    -repositoryURL  "jdbc:db2://testserver.test.com:32706/sample" 
    -repositoryUsername  "myuser" 
    -repositoryPassword  "mypwd" 
    -runtimeGroupId testApp  
    -runtimeGroupVersion V2

    Lorsque vous activez la version V2, la version V1 est automatiquement désactivée. L'exécution pureQuery récupérera les informations pureQuery à partir de la version active du groupe d'exécution dans le référentiel.

    Le résultat de la commande est similaire à l'exemple suivant :
    IBM Optim pureQuery Runtime 2.2.0.3 build 2.18.118
    Licensed Materials - Property of IBM
    5724-U16
    (c) Copyright IBM Corp. 2006, 2010 All Rights Reserved.
    
    ========================================
    
    Démarrage des options de processus :  -activate
    "runtimeGroup" -runtimeGroupVersion "V2" 
    -repositoryURL "jdbc:db2://testserver.test.com:32706/sample" 
    -repositoryUsername "*****" -repositoryPassword "*****"
    -runtimeGroupId "testApp" 
    
    L'utilitaire ManageRepository a correctement activé le groupe d'exécution "testApp"
    version "V2".

Résultats

La propriété de l'intervalle de régénération de l'exécution pureQuery propertiesRefreshInterval a été définie à deux minutes pour cette application. Une fois les deux minutes écoulées, les propriétés d'exécution pureQuery mises à jour prennent effet. Avec la valeur de la propriété executionMode définie par STATIC, l'application exécute les instructions SQL de façon statique.

Dans la version V2 du groupe d'exécution testApp, la propriété d'exécution pureQuery captureMode est définie par ON. L'exécution pureQuery continue de capturer des données SQL à partir de l'application. Si vous n'avez pas capturé toutes les instructions SQL à partir de l'application, vous pouvez extraire les données SQL et pureQueryXML capturées et répéter le processus de fusion, de configuration et de liaison des instructions SQL et charger ensuite le fichier pureQueryXML mis à jour dans le référentiel.

Les données pureQuery dans la version V1 du groupe d'exécution testApp ne sont pas modifiées. Vous pouvez activer la version V1 pour revenir aux paramètres précédents de l'exécution pureQuery.

Remarque : Une méthode permettant de déterminer si les instructions SQL sont exécutées de façon statique consiste à supprimer le package. Si vous supprimez le package TESTAPP de la base de données, l'application ne parviendra pas à exécuter les instructions SQL qui sont répertoriées dans le fichier pureQueryXML.

Si vous exécutez l'utilitaire StaticBinder avec le fichier pureQueryXML pour recréer le package, l'application exécutera les instructions SQL de façon statique.

Vous pouvez également utiliser un outil de contrôle de base de données tel que Tivoli OMEGAMON XE for DB2 sur z/OS pour vérifier que l'instruction SQL s'exécute de façon statique.

Que faire ensuite

Ce jeu de tâches montre comment une application WebSphere peut être configurée avec l'optimisation client pureQuery et comment un référentiel de base de données peut être utilisé pour stocker des propriétés d'exécution pureQuery et des données SQL capturées pureQuery.


Commentaires