Capture des instructions SQL à partir d'applications Web partageant une source de données

Si plusieurs applications Web partagent une source de données, vous pouvez définir des propriétés d'optimisation client spécifiques à chaque application.

Pourquoi et quand exécuter cette tâche

Lorsque vous définissez des propriétés spécifiques à l'application, la modification des propriétés, la capture des instructions SQL, la configuration des fichiers pureQueryXML ou la liaison SQL d'une application n'interrompt pas les autres applications partageant une source de données. Vous pouvez également réaliser ces actions simultanément sur au moins deux de ces applications sans que l'une de ces actions ne gêne les autres, sauf si une ou plusieurs des applications reposent sur la mise en cache de l'instruction par le serveur d'applications.

En effet, si vous modifiez les propriétés de personnalisation client spécifiques à une application, il n'est pas utile de redémarrer le serveur qui exécute toutes les applications. Vous pouvez simplement redémarrer une application.

Toutefois, si vous modifiez des propriétés se trouvant dans un fichier pdq.properties ou définies sur un objet DataSource, vous devez redémarrer le serveur d'applications. Les propriétés que vous définissez dans ces emplacements sont celles qui déterminent la manière dont pureQuery consigne les messages d'erreur pour l'optimisation client. Voir Définition des propriétés de l'optimisation client pour obtenir des informations relatives à la définition des propriétés dans ces emplacements.

Procédure

Exemple

Soit deux applications Web, Application1 et Application2, s'exécutant sous WebSphere Application Server. Vous pouvez configurer l'optimisation client pour les deux applications, afin de pouvoir exécuter des instructions SQL dans Application1 de manière dynamique et d'exécuter SQL dans Application2 de manière statistique.

Application1 utilise deux sources de données : OrdersDS et ItemsDS. Application2 utilise également l'une de ces sources de données : OrdersDS.

La procédure ci-dessous explique comment procéder à une seule configuration sans consignation ni propriété d'optimisation client facultatives.

Pour configurer et exécuter Application1, suivez la procédure ci-dessous :

  1. Dans WebSphere Application Server, définissez le serveur IBM® Data Server Driver personnalisé pour la source de données de la JDBC et SQLJ pour chacune des deux sources de données.
  2. Créez un fichier de propriétés pour chaque source de données : pdq.ItemsDS.properties et pdq.OrdersDS.properties.
  3. Définissez les propriétés requises dans chacun des fichiers de propriétés.

    Pour pdq.ItemsDS.properties, vous pouvez utiliser les paramètres suivants :

    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App1Items.pdqxml

    Pour pdq.OrdersDS.properties, vous pouvez utiliser les paramètres suivants :

    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App1Orders.pdqxml
    Les noms de fichiers pureQueryXML peuvent suivre la convention de votre choix, à condition que leur extension soit .pdqxml ou .xml.
  4. Capturez les instructions SQL.
  5. Dans les deux fichiers de propriétés, attribuez la valeur OFF à captureMode et DYNAMIC à executionMode.
  6. Si vous utilisez le cache d'instruction du serveur d'applications, purgez les pools de connexions des deux sources de données. A chaque utilisation de ce cache et modification de la valeur de executionMode, vous devez purger le pool connexions.
  7. Redémarrez Application1.

Pour configurer et exécuter Application2, vous pouvez procéder comme suit :

  1. Créez le fichier de propriétés pdq.OrdersDS.properties.
  2. Définissez les propriétés requises dans chacun des fichiers de propriétés.
    pdq.captureMode=ON
    pdq.executionMode=DYNAMIC
    pdq.pureQueryXml=App2Orders.pdqxml
    De nouveau, le nom du fichier pureQueryXML peut suivre la convention de votre choix. Toutefois, l'extension doit être .pdqxml ou .xml.
  3. Capturez les instructions SQL.
  4. Exécutez l'utilitaire sur le fichier pureQueryXML pour configurer les modules DB2 que vous allez créer.
  5. Exécutez l'utilitaire StaticBinder sur le fichier pureQueryXML pour créer les modules DB2 à partir des instructions SQL capturées.
  6. Dans le fichier pdq.OrdersDS.properties, attribuez l valeur OFF à captureMode et STATIC à executionMode.
  7. Si vous utilisez le cache d'instruction du serveur d'applications, purgez le pool de connexions de la source de données. A chaque utilisation de ce cache et modification de la valeur de executionMode, vous devez purger le pool connexions.
  8. Redémarrez Application2.

Commentaires