Pour prendre en charge la capture des instructions SQL dans un environnement de production, vous pouvez configurer une application qui utilise l'optimisation client pureQuery afin de stocker les informations de configuration pureQuery dans un système de fichier qui est séparé de l'application activée pour pureQuery ou dans le référentiel d'une base de données. L'exécution pureQuery capture les données SQL de façon continue et stocke les données SQL capturées dans l'emplacement spécifié. L'administrateur de la base de données extrait de l'emplacement les données SQL capturées et utilise les utilitaires pureQuery de fusion, de configuration et StaticBinder pour mettre à niveau l'instruction SQL à exécuter en mode statique sur la base de données de transactions sans redémarrer l'application.
La figure suivante montre une représentation du processus continu dans un environnement de production WebSphere Application Server.
Dans la figure, chaque instance d'application est activée avec l'optimisation client pureQuery et exécute des instructions SQL de façon statique. Chaque application utilise dans une base de données un référentiel qui est séparé de la base de données de transactions afin de récupérer les propriétés pureQuery et les données pureQueryXML. Le référentiel stocke également les données SQL capturées par l'exécution pureQuery. Le script extrait les données SQL capturées et les données pureQueryXML qui sont utilisées par l'exécution pureQuery, fusionne les données SQL capturées avec les données pureQueryXML, met à jour les modules DB2 afin d'exécuter les instructions SQL en mode statique et stocke les données pureQueryXML dans un référentiel. La mise à jour des informations pureQuery et du module DB2 ne requiert pas le redémarrage des instances de l'application et l'administrateur de la base de données peut décider du moment d'exécution du script.
Par exemple, supposons que vous mettiez à jour une application Web de production existante qui est activée avec l'optimisation client pureQuery, avec les modifications qui affectent les instructions SQL qu'elle émet. Si vous configurez l'optimisation client pureQuery afin qu'elle s'exécute en mode de capture, l'application exécute en mode statique les instructions SQL qui se trouvent dans le fichier pureQueryXML. En même temps, les nouvelles instructions SQL de l'application sont exécutées de façon dynamique, sont capturées par l'exécution pureQuery et stockées dans un référentiel. Les données SQL capturées à partir de l'application mise à jour contiennent des métadonnées et des statistiques telles que le comptage d'exécution et la date de dernière utilisation, de nouvelles traces de pile, des informations de registre spéciales ainsi que des informations sur le groupage, si ces informations sont modifiées.
L'utilitaire Merge pureQuery peut traiter les nouvelles données SQL capturées et les appliquer aux instructions existantes dans le fichier pureQueryXML qui est utilisé par l'exécution pureQuery. L'utilitaire Merge peut également supprimer des instructions qui n'ont pas été exécutées pendant une longue période.
L'administrateur de la base de données peut extraire les données SQL capturées à partir du référentiel, exécuter l'utilitaire Merge afin de les fusionner avec le fichier pureQueryXML qui est utilisé par l'exécution pureQuery avec l'application Web, configurer, lier puis charger le fichier pureQueryXML mis à jour dans le référentiel.