Indique si des informations sur les instructions
SQL doivent être capturées et le type d'information à capturer.
Ces informations sont écrites dans le fichier spécifié par la propriété
pureQueryXml ou à l'emplacement spécifié par la propriété outputPureQueryXml. Si l'emplacement est un référentiel créé dans une base de données, les informations sont écrites dans le groupe d'exécution de référentiel spécifié par la propriété
propertiesGroupId.
Lorsque vous exécutez votre application avec le mode de capture défini sur ON, vous devez exécuter avec succès tous les chemins logiques contenant les instructions SQL que vous souhaitez capturer. pureQuery capture les instructions SQL uniquement lorsqu'elles sont exécutées avec succès.
Lors de la capture d'instructions SQL à partir d'une application qui accède à une base de données
DB2 for z/OS, pureQuery Runtime suit les instructions SQL capables d'effectuer des insertions de plusieurs lignes. Les utilitaires pureQuery
Configure et StaticBinder utilisent les informations lors du traitement des instructions.
Si une instruction SQL est exécutée
avec le verrouillage optimiste, elle ne peut pas être exécutée de façon statique.
Par conséquent, pureQuery Runtime ne capture pas des instructions qui sont exécutées
avec le verrouillage optimiste. Les instructions ne sont pas concernées par les options
allowDynamicSQL ou
capturedOnly de pureQuery Runtime.
Le verrouillage optimiste est activé par les méthodes suivantes :
DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery
Cette propriété peut posséder les valeurs suivantes :
- ON
- Indique que les instructions SQL doivent être capturées lorsque l'application s'exécute.
- OFF
- Valeur par défaut. Indique que les instructions SQL ne doivent pas être capturées lorsque l'application
s'exécute.
- NEW_STMTS
- Indique que seules les nouvelles instructions SQL doivent être capturées. pureQuery
Runtime enregistre les informations d'exécution SQL si les paramètres de registre spécial capturés avec l'instruction SQL sont différents des paramètres du fichier pureQueryXML. Par exemple, si une instruction SQL a été capturée et la même instruction est capturée à nouveau avec un paramètre SCHEMA différent,
pureQuery Runtime met à jour les informations associées à l'instruction SQL dans le fichier
pureQueryXML avec les nouvelles informations SCHEMA.
Les informations SQL telles que l'heure et le nombre d'exécutions ne sont pas capturées.
Cette valeur est prise en charge uniquement pour les applications Java.
Si vous indiquez des fichiers d'entrée et de sortie
pureQueryXML différents, seules quelques instructions sont écrites sur le fichier de sortie.
Si vous définissez la valeur de la propriété
captureMode sur
NEW_STMTS, les valeurs par défaut des propriétés
pureQuery Runtime sont modifiées. Le tableau suivant répertorie les valeurs par défaut modifiées :
Tableau 1. Valeurs par défaut des propriétés
pureQuery Runtime lorsque la propriété captureMode est définie sur NEW_STMTSPropriété pureQuery Runtime |
Valeur par défaut |
maxNonParmSQL |
100 |
maxStackTracesCaptured |
1 |
stackTraceDepth |
5 |
sqlLiteralSubstitution |
NOT_SET |
Vous pouvez spécifier des valeurs pour les propriétés
pureQuery Runtime afin d'écraser les valeurs par défaut.
- LITE
- Indique qu'une faible quantité d'informations de trace de pile sont capturées dans les instructions SQL. En réduisant la quantité de données capturées, le processus de capture utilise moins de ressources. pureQuery Runtime met à jour le fichier
pureQueryXML pour les instructions SQL nouvelles et capturées précédemment.
Les informations SQL telles que le temps d'exécution et le nombre d'exécutions sont capturées.
Cette valeur est prise en charge uniquement pour les applications Java.
Si vous définissez la valeur de la propriété captureMode sur
LITE,
les valeurs par défaut des propriétés pureQuery Runtime sont modifiées.
Le tableau suivant répertorie les valeurs par défaut modifiées :
Tableau 2. Valeurs par défaut des propriétés pureQuery Runtime lorsque la propriété captureMode est définie sur LITEPropriété pureQuery Runtime |
Valeur par défaut |
maxStackTracesCaptured |
1 |
stackTraceDepth |
5 |
sqlLiteralSubstitution |
NOT_SET |
Vous pouvez spécifier des valeurs pour les propriétés
pureQuery Runtime afin d'écraser les valeurs par défaut.
Notes
d'utilisation de l'interface CLI DB2
et d'IBM Data Server Driver
Lors de l'utilisation de l'interface CLI DB2 ou
d'IBM® Data Server Driver avec
pureQuery Runtime, vous pouvez utiliser la propriété pureQuery Runtime comme mot clé de configuration.
- Syntaxe de mot clé CLI IBM
- captureMode = ON | OFF
- Syntaxe de configuration d'IBM Data Server
Driver
- <parameter name="captureMode" value="ON | OFF" />
- Mot clé de chaîne de connexion équivalent
d'IBM Data Server Provider for .NET
- N/A
Remarques sur l'utilisation
Les applications CLI
qui sont activées avec l'optimisation client pureQuery prennent en charge
uniquement le mot clé pureQueryXml afin de capturer les
données dans un fichier.
Pour assurer le bon fonctionnement des applications
Java avec des marqueurs de paramètres nommés, quel que soit le type ou la version du serveur de données, définissez la propriété enableNamedParameterMarkers de Connection ou DataSource sur
DB2BaseDataSource.YES avant d'utiliser les marqueurs de paramètres dans vos applications.
Exemples
Dans cet exemple, une société a capturé précédemment des instructions SQL à partir d'une application activée avec l'optimisation de client pureQuery. Les instructions se trouvent dans un fichier pureQueryXML. La société a déployé l'application et le fichier
pureQueryXML file prod-v1.pdqxml dans un environnement de production. Elle a procédé au processus de liaison pour que les instructions SQL s'exécutent de façon statique sur la base de données de production.
Cependant, elle n'est pas sûre que l'ensemble des instructions SQL exécutées par l'application aient été capturées. Pour capturer uniquement les instructions SQL qui n'ont pas été capturées précédemment, la société peut définir la valeur de la propriété
captureMode sur
NEW_STMTS. Les paramètres de propriété suivants configurent
pureQuery Runtime afin de capturer les instructions SQL dans le fichier pureQueryXML
newStmt.pdqxml si l'instruction n'est pas le fichier pureQueryXML prod-v1.pdqxml.
executionMode=STATIC
captureMode=NEW_STMTS
pureQueryXml=prod-v1.pdqxml
outputPureQueryXml=newStmt.pdqxml
Seules les nouvelles instructions sont capturées. Les traces de pile et les statistiques ne sont pas capturées pour les nouvelles instructions. Le processus de capture est un processus moins exigeant en ressources et peut être acceptable dans un environnement de production.
Dans cet exemple, une société souhaite capturer les instructions SQL sans capturer les informations extensives de trace de pile à partir d'une application activée avec l'optimisation de client pureQuery.
Avec les propriétés pureQuery Runtime suivantes, les instructions SQL exécutées par l'application sont capturées dans le fichier
pureQueryXML capture.pdqxml.
Les instructions sont capturées avec des informations d'exécution supplémentaires telles que le temps d'exécution de l'instruction qui peuvent être utilisées pour optimiser l'application.
executionMode=DYNAMIC
captureMode=LITE
pureQueryXml=capture.pdqxml