Sondenobjekt 'Target'

Das Sondenobjekt Target ist eine Spezifikation der Klassen und Methoden, auf die die Sonde angewendet werden soll.

Das Objekt 'Target' ist optional. Wenn kein 'Target' angegeben ist, wird die Sonde auf alle Klassen angewendet, die von der Steuerkomponente für Instrumentierung verarbeitet werden.

Mit dem Objekt 'Target' können Sie Filterregeln erstellen, um Methoden ausgehend von Mustern in die Instrumentierung einzubeziehen oder von der Instrumentierung auszuschließen. Die Muster werden mit dem Paket-, Klassen- und Methodennamen sowie der Methodensignatur abgeglichen. Sie können Platzhalterzeichen enthalten, wobei der Platzhalter "*" mit null oder mehreren Zeichen übereinstimmen kann.

Stimmen die Platzhaltermuster eines 'Target' mit dem Paketnamen, Klassennamen und Namen sowie der Signatur einer Methode überein, legt das Merkmal type fest, ob die Methode instrumentiert wird (include) oder nicht (exclude). Stimmen die Muster nicht mit dem Paketnamen, Klassennamen und Namen sowie der Signatur einer Methode überein, wird die Methode standardmäßig instrumentiert.

Das Objekt 'Target' enthält die folgenden Merkmale:
Merkmal Beschreibung
type Erforderliches Merkmal. Das Merkmal type legt fest, ob eine Sonde auf eine Zielmethode angewendet wird oder nicht. Geben Sie include an, um die Sonde auf Klassen und Methoden anzuwenden, die mit den Platzhaltermustern übereinstimmen, oder exclude, um diese Klassen und Methoden auszuschließen.
package Optionales Merkmal. Geben Sie ein Platzhaltermuster an, das mit dem Paketabschnitt von Klassennamen abgeglichen werden soll. Beispiel: java.util* stimmt mit allen Klassen im Paket java.util und in dessen untergeordneten Paketen überein. Ist dieses Merkmal nicht angegeben, wird der Standardwert * verwendet.
className Optionales Merkmal. Geben Sie ein Platzhaltermuster an, das mit Klassennamen abgeglichen werden soll. Ist dieses Merkmal nicht angegeben, wird der Standardwert * verwendet.
method Optionales Merkmal. Geben Sie ein Platzhaltermuster an, das mit Methodennamen abgeglichen werden soll. Ist dieses Merkmal nicht angegeben, wird der Standardwert * verwendet.
signature Optionales Merkmal. Geben Sie ein Platzhaltermuster an, das mit einer Methodensignatur abgeglichen werden soll. Eine Methodensignatur ist die Zeichenfolge, die die Argumente und den Rückgabetyp einer Methode repräsentiert. Dies entspricht dem Java-internen Format für Methodensignaturen. Beispiel: (Ljava/lang/Object;)D ist die Signatur einer Methode, die ein 'Object' als Parameter verwendet und ein 'Double' zurückgibt. Anhand dieses Platzhaltermusters können überladene Methoden unterschieden werden. Ist dieses Merkmal nicht angegeben, wird der Standardwert * verwendet.

Anmerkungen:

  • Eine Sonde kann mehrere Target-Objekte mit aufeinander folgenden Steuerungsregeln enthalten. Wenn nur die von Ihnen angegebenen Methoden adressiert werden sollen, fügen Sie nach dem Target-Objekt für die gewünschten Methoden ein abschließendes Target-Objekt hinzu, das package=* className=* method=* signature=* type=exclude angibt.
  • In Target-Objekten angegebene Paket- und Klassennamen werden auch mit den Paket- und Klassennamen aller von einer Klasse implementierten Schnittstellen verglichen. Die Klasse java.util.HashMap implementiert beispielsweise die Schnittstelle java.util.Map. Wenn eine Sonde das Paket java.util, den Klassennamen Map und den Methodennamen size adressiert, wird sie auf java.util.HashMap.size() sowie auf die Methode size aller Klassen angewendet, die die Schnittstelle Map implementieren.
  • Bei der Mustererkennung werden keine Vererbungsbeziehungen berücksichtigt. Wenn die Klasse Derived eine Erweiterung der Klasse Base darstellt und eine Sonde Base.run() adressiert, wird die Sonde nicht automatisch auf Derived.run() angewendet.
  • Besteht das Paketmuster in einem Target-Objekt nur aus einem Punkt ("."), repräsentiert es das globale nicht benannte Java-Paket. Mit diesem Muster können Sie explizit Klassen im globalen Paket adressieren. Beispiel:
    <target type="include" package="." class="SomeClass" method="*" />
    <target type="exclude" package="*" class="*" method="*" />
    Diese beiden Steuerungsregeln bewirken, dass die Sonde die Klasse SomeClass im globalen Paket adressiert und alle anderen Klassen ausschließt. Mit diesen Regeln wird eine in einem anderen Paket enthaltene Klasse des Namens SomeClass ausgeschlossen.
  • Callsite-Sonden gleichen Steuerungsmuster und -Regeln mit dem Paketnamen, Klassennamen und Namen sowie der Signatur einer aufgerufenen Methode ab. Der Abgleich erfolgt für die aufgerufene Methode, wie sie zur Kompilierungszeit bekannt war. Das bedeutet, es werden die statisch bekannten Klassen- und Methodennamen verwendet und nicht die tatsächlichen Methoden, die aufgrund von Vererbung und von virtuellen Funktionen aufgerufen werden. Wird der Aufruf über eine Schnittstellenreferenz ausgeführt, muss der Name der Schnittstelle übereinstimmen.
Beispiel:
<target
  type="include"
  package="com.example"
  className="*Proxy"
  method="Get*"
/>

Enthalten in:
Objekt 'Probe'

Übergeordnetes Thema: Referenzinformationen zu Probekit-Elementen

Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2004. Alle Rechte vorbehalten.