Page History
...
<?xml version='1.0'?>
<instrumenter-config>
<custom-config> </custom-config>
<all-calls-to-method> </all-calls-to-method>
<all-calls-from-method> </all-calls-from-method>
<calls-from-method-to-method> </calls-from-method-to-method>
<ignore-config> </ignore-config>
</instrumenter-config>
See “About About custom instrumentation configuration” on page 215.See “About configuration, About all calls to method instrumentation configuration” on page 216. See “About configuration, About all calls from method instrumentation configuration” on page 216.See “About configuration, About calls from method to method instrumentation configuration” on page 216. See “About ignore instrumentation configuration” on page 217.configuration, and About ignore instrumentation configuration.
Anchor | ||||
---|---|---|---|---|
|
The <custom-config> element has the following structure:
<custom-config>
<java-classes>
<java-class> <!-- occurs 0 or more times -->
<class-name> class-or-interface-name </class-name>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
<param> <!-- occurs 0 or more times --
...
>parameter-type </param>
</params>
<capture-param-index> <!-- optional --
...
>capture-parameter </capture-param-index>
</method>
</methods>
</java-class>
</java-classes>
</custom-config>
Anchor | ||||
---|---|---|---|---|
|
The <all-calls-to-method> element has the following structure:
<all-calls-to-method>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
<param> <!-- occurs 0 or more times -->
parameter-type </param>
</params>
</method>
</methods>
</all-calls-to-method>
Anchor | ||||
---|---|---|---|---|
|
The <all-calls-from-method> element has this structure:
<all-calls-from-method>
<java-classes>
<java-class> <!-- occurs 0 or more times -->
<class-name> class-or-interface-name </class-name>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
<param> <!-- occurs 0 or more times -->
parameter-type </param>
</params>
</method>
</methods>
</java-class>
</java-classes>
</all-calls-from-method>
Anchor | ||||
---|---|---|---|---|
|
The <calls-from-method-to-method> element has this structure:
<calls-from-method-to-method>
<invocation-relationship> <!-- occurs 0 or more times -->
<java-class>
<class-name> class-or-interface-name </class-name>
<methods>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
<param> <!-- occurs 0 or more times -->
parameter-type </param>
</params>
</method>
</methods>
</java-class>
<invoked-method> <!-- occurs 0 or more times -->
invoked-method-name </invoked-method>
</invocation-relationship>
</calls-from-method-to-method>
See About method signature matching.
Anchor | ||||
---|---|---|---|---|
|
Use the <ignore-config> element to configure rules that are used to determine when to prevent instrumentation from being applied to all methods in specifically matched classes or packages, to specifically matched methods, or to specifically matched calls to methods.
The <ignore-config> element has this structure:
<ignore-config>
<java-classes> <!-- optional -->
<!-- Purpose and structure described below. -->
</java-classes>
<invocation-relationship> <!-- occurs 0 or more times -->
<!-- Purpose and structure described below. -->
</invocation-relationship>
<all-calls-to-method> <!-- optional -->
<!-- Purpose and structure described below. -->
</all-calls-to-method>
</instrumenter-config>
Use the <java-classes> element to prevent instrumentation from being applied to all methods in specifically matched classes or packages or to specifically matched methods. The <java-classes> element has this structure:
<java-classes>
<java-class> <!-- occurs 0 or more times -->
<class-name> class-or-interface-name </class-name>
<methods> <!-- optional -->
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
...
</params>
</method>
</methods>
</java-class>
</java-classes>
See About method signature matching.
For each method to be instrumented, the following rules are used to determine if instrumentation should not be applied to the method:• If
- If the method is declared in a class whose name matches the specified class or interface name of a <java-class> element, no instrumentation should be applied to the method.
...
- If the matched <java-class> includes a <methods> element, the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method.
...
- If the matched <method> element includes a <params> element, the method must also match the specified signature so that no instrumentation is applied to the method.
Wildcards are permitted in the class or interface name and method name. See About using the wildcard character *.
Use the <invocation-relationship> element to prevent instrumentation from being applied to specifically matched calls to methods from a specifically matched calling method. The <invocation-relationship> element has the following structure:
<invocation-relationship> <!-- occurs 0 or more times -->
<java-class>
<class-name> class-or-interface-name </class-name>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
</params>
...
</method>
</methods>
</java-class>
<invoked-method> <!-- occurs 0 or more times -->
qualified-method-name </invoked-method>
</invocation-relationship>
See About method signature matching.
For each call to a method to be instrumented, the following rules are used to determine if instrumentation should not be applied to the method:• If
- If the called method is declared in a class whose name matches the specified class or interface name of a <java-class> element, no instrumentation should be applied to the method.
...
- If the matched, <java-class> includes a <methods> element, the method must also match the specified method name of a <method> element so that no instrumentation is applied to the method. If the matched <method> element includes a <params> element, the method must also match the specified signature so that no instrumentation is applied to the method.
Use the <all-calls-to-method> element to prevent instrumentation from being applied to specifically matched calls to methods from any calling method. The <all-calls-to-method> element has the following structure:
<all-calls-to-method>
<methods>
<method> <!-- occurs 0 or more times -->
<name> method-name </name>
<params> <!-- optional -->
</params>
</method>
</methods>
</invocation-relationship>
See About method signature matching.
...
The <params> element configures rules that are used to match method signatures for processing by the instrumenter. The <params> element has the following structure:
<params> <!-- optional -->
<param> <!-- occurs 0 or more times --> parameter-type </param>
</params>
The parameter type is the same as the abstract type declarator for the parameter type in Java. For example, the parameter-type for a parameter of type java.lang.String is java.lang.String, and the parameter type for a parameter of type int[][] is int[][].
The following primitive parameter types names are recognized:
• boolean
• byte
• char
• double
• float
• int
• long
• short
boolean
byte
char
double
float
int
long
short
void
• void
The <invoked-method> elements in the <calls-from-method-to-method> element are used to match specific method signatures for specific calls from one method to another. All methods that match the signature are instrumented. Wildcard expressions are not supported and return types are not matched. The <invoked-method> format must be expressed using the same primitive types that were discussed for the <param> element.
...
The following table illustrates how the wildcard character can be used.
Table 18-3 Usage 3 Usage of wildcard character *Wildcard Instrumented elements Non
Wildcard | Instrumented elements | Non-instrumented elements |
---|---|---|
* |
...
xmp.server.Main |
...
TaskUtilities | |
xmp.task.* |
...
xmp.task.AbstractTask |
...
TaskUtilities | xmp.server.Main |
*$* |
...
xmp.task. |
...
AbstractTask$1 | xmp.server.Main xmp.task.AbstractTask xmp.task.util.TaskUtilities |
Info |
---|
Use wildcard characters only when discovering the methods to instrument. Otherwise, it may result in instrumentation that does not yield meaningful performance metrics but introduces unwanted overhead. Do not implement wildcarded instrumentation in production environments. |
...
To include Leak Seeker instrumentation for application server classes1. In
- In the JVMID/LeakSeeker.xml file, find the application server class prefix for the application server classes that you want to instrument. For example, to identify WebLogic application server classes to instrument, you would search for lines beginning with com.bea and weblogic.
...
- Comment out the lines for the application server whose classes you want to instrument. For example, the following lines cause Leak Seeker to collect information for WebLogic application server classes.
<!--leakseeker-if-package>com.bea</leakseeker-if-package>
<!--leakseeker-if-package>weblogic</leakseeker-if-package>
...
Precise. Performance intelligence from click to storage. Learn more > >
...