Traces de pile pour les instructions individuelles de fichiers pureQueryXML

Dans la plupart des cas, un fichier pureQueryXML contient au moins deux traces de pile pour chaque instruction SQL qu'il contient.

La première trace de pile est réservée au point où l'application définit l'instruction SQL et la seconde trace de pile est réservée au point où l'application exécute cette instruction. Si l'application prépare et exécute une instruction SQL plusieurs fois en plusieurs points du code, pureQuery capture les traces de pile des points multiples.

Si vous effectuez une capture incrémentielle avec un fichier pureQueryXML à partir d'une version antérieure à la version 2.1, pureQuery migre le fichier dans le format en cours. Pendant cette conversion, pureQuery place la trace de pile d'une instruction SQL capturée existante dans l'un des points suivants de la nouvelle structure du fichier :
  • Si la trace de pile provient d'une méthode addBatch() ou addDBBatch(), la trace de pile se déplace jusqu'au point de définition.
  • Si la trace de pile provient d'une autre méthode, la trace de pile se déplace jusqu'au point d'exécution.

La table suivante répertorie les points du code d'une application à partir de laquelle pureQuery collecte les traces de pile des instructions SQL.

Tableau 1. Points du code d'application à partir desquels pureQuery collecte les traces de pile
Scénario Point où l'application définit l'instruction SQL selon pureQuery Point où l'application exécute l'instruction SQL
L'application exécute une instruction SQL à l'aide d'API prepareStatement ; les méthodes prepareStatement et execute sont appelées en différents points du code. Ligne de code où l'application appelle la méthode prepareStatement() Ligne de code où l'application appelle la méthode execute()
L'application exécute une instruction SQL à l'aide d'API prepareStatement ; les méthodes prepareStatement et execute sont sur la même ligne Ligne de code où l'application appelle la méthode prepareStatement() Ligne de code où l'application appelle la méthode execute()
L'application exécute une instruction SQL à l'aide d'API Statement Ligne de code où l'application appelle la méthode execute() Ligne de code où l'application appelle la méthode execute()
L'application exécute une instruction SQL faisant partie d'un lot d'objets Statement ; les instructions sont hétérogènes Ligne de code où l'application la méthode addBatch() Ligne de code où l'application appelle la méthode executeBatch()
L'application exécute une instruction SQL faisant partie d'un lot d'objets PreparedStatement Ligne de code où l'application appelle la méthode prepareStatement() Ligne de code où l'application appelle la méthode executeBatch()
L'application exécute une instruction SQL faisant partie d'un lot d'objets PreparedStatement ; les instructions sont hétérogènes Pour chaque objet PreparedStatement, ligne de code où l'application appelle la méthode prepareStatement() Pour chaque objet PreparedStatement, ligne de code où l'application appelle la méthode executeBatch()

Vous pouvez utiliser les traces de pile de vos fichiers pureQueryXML pour résoudre les problèmes dans vos applications. pureQuery fournit trois propriétés utilisables pour contrôler le contenu, le nombre et la longueur des traces de pile.

packagePrefixExclusion
Cette propriété permet d'exclure les entrées de trace de pile pour les packages Java ne faisant pas partie de votre application.
maxStackTracesCaptured
>Cette propriété permet de définir le nombre maximum de traces de pile de définition et de traces de pile d'exécution que pureQuery enregistre pour chaque instruction SQL capturée.
stackTraceDepth
Cette propriété permet de définir le nombre maximum d'entrées que pureQuery enregistre pour chaque trace de pile.

Pour plus d'informations sur ces propriétés, voir Capture des instructions SQL pour l'optimisation client.


Commentaires