stackTraceDepth プロパティーを packagePrefixExclusions プロパティーとともに使用した場合、pureQuery は stackTraceDepth を無視します。
デフォルト値はありません。 このプロパティーは、ステートメントのキャプチャー時にのみ使用できます。
com.ibm|com.otherpackagePrefixExclusions では、暗黙的にも明示的にもワイルドカードは使用できません。例えば、com.ibm で始まるパッケージを除外するフィルター処理として、次のどちらの項目も無効です。
com.i
com.i*
クライアント最適化に関するプロパティーの設定方法で説明されているように、このプロパティーはローカルでもリモートでも設定できます。このプロパティーを pdq.properties ファイルで設定する場合、このプロパティーの値は、pdq.properties ファイルを参照するアプリケーション内のすべての pureQueryXML ファイルに適用されます。このプロパティーを JVM システム・プロパティーとして設定した場合、値は、java コマンドで開始するアプリケーション内のすべての pureQueryXML ファイルに適用されます。
インクリメンタル・キャプチャーを実行している場合: ステートメントのキャプチャー後に packagePrefixExclusions の値を変更すると、以降のキャプチャー処理で、pureQuery は既存のスタック・トレースと新しいスタック・トレースを比較します。packagePrefixExclusions を変更したことに起因する新しいスタック・トレースが既存のスタック・トレースの一部である場合、pureQuery は新しいスタック・トレースをキャプチャーしません。
例:
例えば、packagePrefixExclusions が Test2 に設定された状態で pureQuery がキャプチャーしたスタック・トレースが次のようになっているとします。
<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>
ここで、次のように packagePrefixExclusions を Test4 が含まれる値に変更したとします。Test2|Test4
この場合、インクリメンタル・キャプチャーを実行し、同じ SQL ステートメントを実行すると、次のようなスタック・トレースが得られます。
<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>
ただし、pureQuery ではこの新しいスタック・トレースはキャプチャーされません。代わりに、pureQuery は前のスタック・トレースを保持します。これは、新しいスタック・トレース全体が元のスタック・トレースの一部であるためです。
また、packagePrefixExclusion の値を Test4 に変更した場合は、次のようなスタック・トレースが得られます。
<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>
この場合は、新しいスタック・トレースが元のスタック・トレースの一部ではないため、pureQuery は新しいスタック・トレースを記録します。