Propriété packagePrefixExclusions

Indique la liste de domaines et de sous-domaines séparés par une barre verticale des packages Java que vous ne souhaitez pas inclure aux traces de pile.

Si vous utilisez la propriété stackTraceDepth avec la propriété packagePrefixExclusions, pureQuery ignore stackTraceDepth.

Il n'existe pas de valeur par défaut. Vous pouvez utiliser cette propriété uniquement lorsque vous capturez des instructions.

Vous pouvez, par exemple, exclure les entrées de package Java d'un produit IBM® et d'une autre application. Les packages Java IBM commencent par com.ibm. Les packages Java de l'autre application peuvent tous commencer par com.other. Vous pouvez procéder au filtrage comme suit :
com.ibm|com.other
packagePrefixExclusions n'accepte pas de caractères génériques implicites ou explicites. Par exemple, aucune de ces entrées n'est valide pour filtrer les packages commençant par com.ibm:
  • Caractère générique implicite
    com.i
  • Caractère générique explicite
    com.i*

Vous pouvez définir cette propriété en mode local ou en mode global, tel que cela est expliqué dans Définition des propriétés de l'optimisation client. Si vous la définissez dans un fichier pdq.properties, la valeur de la propriété s'applique à tous les fichiers pureQueryXML qui se trouvent dans les applications qui référencent le fichier pdq.properties. Si vous définissez la propriété comme propriété système JVM, la valeur s'applique à tous les fichiers pureQueryXML qui se trouvent dans l'application démarrée via la commande java.

Si vous effectuez une capture incrémentielle : si vous modifiez la valeur de packagePrefixExclusions après avoir capturé des instructions, pureQuery compare les traces de pile existantes avec les nouvelles traces de pile dans les opérations de capture suivantes. Si la nouvelle trace de pile résultant de la modification de packagePrefixExclusions fait partie de la trace de pile existante, pureQuery ne capture pas la nouvelle trace de pile.

Exemple :

Par exemple, voici une trace de pile capturée par pureQuery avec packagePrefixExclusions défini sur Test2:

<trace>
	<traceEntry classFile="myClass" containingPkg="com.myPackage" fileName="Unknown Source" isNative="false" lineNo="" method="addBatch"/>
	<traceEntry classFile="jas114962" containingPkg="Test4" fileName="jas114962.java" isNative="false" lineNo="127" method="funaddbatch1"/>
	<traceEntry classFile="jas114962" containingPkg="Test4" fileName="jas114962.java" isNative="false" lineNo="117" method="funaddbatch_new"/>
	<traceEntry classFile="jas114962" containingPkg="Test3" fileName="jas114962.java" isNative="false" lineNo="118" method="funaddbatch_new"/>       
</trace>

Supposons que vous changez la valeur de packagePrefixExclusions afin qu'elle indique désormais Test4 : Test2|Test4

Lors de la capture incrémentielle et de l'exécution sur la même instruction SQL, la trace de pile retourne les résultats suivants :

<trace>
	<traceEntry classFile="myClass" containingPkg="com.myPackage" fileName="Unknown Source" isNative="false" lineNo="" method="addBatch"/>
	<traceEntry classFile="jas114962" containingPkg="Test3" fileName="jas114962.java" isNative="false" lineNo="118" method="funaddbatch_new"/>
</trace>

Toutefois, pureQuery ne capture pas cette nouvelle trace de pile. Au lieu de cela, pureQuery conserve la trace de pile précédente car la nouvelle trace de pile entière fait partie de la trace de pile d'origine.

Si vous définissez la valeur de packagePrefixExclusion sur Test4, la trace de pile retourne les résultats suivants :

<trace>
	<traceEntry classFile="myClass" containingPkg="com.myPackage" fileName="Unknown Source" isNative="false" lineNo="" method="addBatch"/
	<traceEntry classFile="jas114962" containingPkg="Test3" fileName="jas114962.java" isNative="false" lineNo="118" method="funaddbatch_new"/>
	<traceEntry classFile="jas892832" containingPkg="Test2" fileName="jasmanoj.java" isNative="false" lineNo="114" method="funaddbatch"/>
	<traceEntry classFile="jas892832" containingPkg="Test2" fileName="jasmanoj.java" isNative="false" lineNo="91" method="main"/>
</trace>

Dans ce cas, pureQuery enregistre la nouvelle trace de pile, qui ne faisait pas partie de la trace de pile d'origine.


Commentaires