エージェントが Constructor モードの場合、実行可能オブジェクトのコンストラクタとその実行メソッドをインストゥルメント化することによって、スレッド間のトランザクション アクティビティが追跡されます。このため、エージェントはオブジェクトの作成ポイントを実際の実行でリンクできるようになります。多くの場合、実行可能オブジェクトによって実行される作業は、それが作成されたビジネス トランザクション コンテキストに関連していないため、エージェントは、追跡対象のスレッドを制限する除外ルールを提供します。これらのデフォルトセットは、エージェント設定内で維持されます。これは、必要に応じてユーザーが微調整することができます。

Constructor モードの設定

マルチスレッド化された相関クラスは、<agent_home>/conf/app-agent-config.xml ファイルにある <fork-config> 要素の <excludes> 子要素で構成されます。

デフォルトの構成は、Java、Org、WebLogic、および WebSphere クラスを除外します。


<fork-config>
    <!-- exclude java and org -->
    <excludes filter-type="STARTSWITH" filter-value="com.singularity/"/>
    <excludes filter-type="STARTSWITH" filter-value="java/,javax/,com.sun/,sun/,org/"/>
    <!-- exclude weblogic and websphere -->
    <excludes filter-type="STARTSWITH" filter-value="com.bea/,com.weblogic/,weblogic/,com.ibm/,net/sf/,com/mchange/""/>
    . . .
XML

エージェントは、ドット(.)またはスラッシュ(/)のどちらかで分離される階層レベルのパッケージ名をサポートします。エージェントは内部でドットをスラッシュに変換します。

カスタム構成

app-agent-config.xml ファイルを編集して、スレッド相関から追加クラスを除外することができます。除外されないすべてのクラスは、デフォルトで含まれます。

<excludes> 要素を使用して、除外するカンマ区切りのクラスまたはパッケージリストを指定します。1 つのクラスまたはパッケージを指定するには単数形 <excludes> を使用します。

包含の場合、<include> 要素を使用して各パッケージまたはクラスを個別に指定する必要があります。<include> 要素を使用してサブパッケージまたはサブクラスを指定することによって、除外された要素のサブパッケージまたはサブクラスを含めることができます。クラス名が除外パターンと包含パターンの両方に一致する場合、より具体的なパターンが優先されます。つまり、org.example.myclass と一致する包含は、org.example と一致する除外よりも優先されます。 

ノードプロパティを使用した設定

ノードのプロパティを使用して、包含または除外するクラスおよびパッケージを構成することもできます。thread-correlation-classes および thread-correlation-classes-exclude を参照してください。

エージェントにおけるスレッド相関の無効化

エージェントでスレッド相関を無効にする(これにより、エンドツーエンドの非同期トランザクション モニターリングも無効化)には、以下のいずれかの方法を使用します。

  • すべての関連クラスにおいて、Java エージェントのノードプロパティ thread-correlation-classes-exclude を設定し、非同期モニターリングを無効にする。
    thread-correlation-classes-exclude=a,b,c,d,e,f,...z

  • app-agent-config.xml ファイルの fork-config セクションに以下の文字列を追加する。

    <exclude filter-type="REGEX" filter-value=".*"/>