Propriété captureMode

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_STMTS
Proprié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 LITE
Proprié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

Commentaires