前のトピック: カスタム トレーサの結合次のトピック: Java のアノテーション


インスツルメントおよび継承

対象: 1.5 より前の JVM

1.5 より前の JVM では、クラス階層の下位レベルにあるクラスに対するインストルメンテーションは自動的には行われません。 プローブされるクラスの複数レベル下のサブクラスがロードされている場合は、新しいメソッドおよび優先メソッドは、自動的にはインスツルメントされません。 プローブされるインターフェースに実装中に明示的に名前を付けるクラスは、インターフェースを間接的に実装する場合でもインスツルメントされます。

たとえば、ClassB が ClassA を、ClassC が ClassB を継承するといったようなクラス階層があるとします。

Interface/ClassA
ClassB
ClassC

ClassA をインスツルメントすると、ClassA を明示的に継承する ClassB もインスツルメントされます。 しかし、ClassC はインスツルメントされません。これは、ClassC が ClassA を明示的に拡張しないためです。 ClassC をインスツルメントするには、明示的に ClassC を指定します。

1.5 より前の Java 環境で、サブクラスが確実にインスツルメントされるようにするには、「EJB サブクラスの追跡」の手順に従います。

JVM 1.5 を使用する場合は、プローブされるクラスの複数のサブクラス レベルをインスツルメントするように CA Introscope® を設定できます。