複数のアプリケーションドメイン(AppDomain)で ASP.NET アプリケーションをモニタするように、.NET エージェントを構成できます。このページは、AppDomain の使用に関する知識があり、アプリケーションへの AppDomain の実装に精通しているユーザを対象としています。

CLR が管理されたコードを実行する前にインスタンス化するシステムドメイン、共有ドメイン、またはデフォルトドメイン、AppDomain については、このページでは説明されません。スタンドアロン アプリケーションを DefaultDomain で実行している場合は、「スタンドアロンアプリケーションのDefaultDomainのインストゥルメンテーション」を参照してください。

.NET の AppDomain

Windowsは、実行中のアプリケーション間のセキュリティとパフォーマンス分離の管理にプロセスを使用します。プロセスの分離により、アプリケーションの実行コードが別のアプリケーションを干渉することはありません。ただし、データを共有するアプリケーションの場合、Windows プロセス間でコールを行うと混乱やパフォーマンスの問題を引き起こすことがあります。AppDomainを使用すると、デベロッパーは1つのプロセス内で実行しながらアプリケーションの分離を維持できる複数アプリケーションを作成することができます。

単一のアプリケーションドメイン

1 つのアプリケーションがそのプロセス内で実行される場合は、ランタイムホストで AppDomain は管理されます。アプリケーションの実行可能ファイルの名前と AppDomain の名前は同じです。 .NET Agentは、1 つの AppDomain 内にそれ自身をインストールし、アプリケーション用のノードを作成します。

AppDomain

複数のアプリケーションドメイン

デベロッパーがアプリケーションに複数のAppDomainを含めると、AppDomainはすべて単一のプロセス内で実行されます。アプリケーションの実行可能ファイルは、AppDomain の 1 つと同じ名前の場合もありますが、その他の AppDomain は独自の名前になります。デフォルトでは、エージェントはすべてのAppDomain内でインストールされ、それぞれらのノードを作成します。

Multiple Application Domains

複数のアプリケーションドメインのモニタリング構成

モニタ対象のアプリケーションに複数の Appdomain が含まれている場合、.NET のアプリケーション エージェントは自動的に各 AppDomain をインストゥルメント化し、ノードを作成します。指定した AppDomain だけをインストゥルメント化するように .NET Agentを構成できます。これを使用して、モニタ対象ではない Appdomain を除外し、ティア内のノード数を制限します。

以下を対象としたアプリケーションドメインのモニタリングを構成できます。

  • Windowsサービス
  • スタンドアロンアプリケーション

config.xml ファイルで .NET エージェントのすべてのインストゥルメンテーション設定を構成します。「.NETエージェントの管理」を参照してください。

  1. インストゥルメント化する AppDomain の名前を指定。

    すでにアプリケーションをインストゥルメント化してある場合、ノードのダッシュボードで AppDomain 名を確認できます。

    左のナビゲーションペインでノードをクリックして、CLR をクリック。

    Instrumentable AppDomains

  2. 管理者としてテキストエディタを起動。
  3. 管理者として config.xml ファイルを編集します。詳細については、.NETエージェントの管理を参照してください。
  4. 複数の AppDomain があるアプリケーションに対応するエレメントを見つける。
    スタンドアロン アプリケーション エレメント:<standalone-application executable="MyWindowsApplication.exe">
  5. このエレメントに app-domain-name 属性を追加。
    MyApp.exe スタンドアロン アプリケーションの MyApp.exe AppDomain をインストゥルメント化する例を示します。

    <standalone-application executable="MyApp.exe" app-domain-name="MyApp.exe">
        <tier name="StandaloneApplication Tier"/>
    </standalone-application>
    CODE

    ユーザが config.xml ファイルの 1 つの AppDomain をインストゥルメント化すると、指定した複数の AppDomain のみをエージェントがインストゥルメント化します。他の Appdomain はインストゥルメント化されません。

  6. さらにAppDomainをインストゥルメント化するには、各ドメインのエレメントを分離アプリケーションのように追加します。
    MyApp.exeMyAppDomain1 をインストゥルメント化する例を示します。

      <standalone-application executable="MyApp.exe" app-domain-name="MyAppDomain1">
        <tier name="StandaloneApplication Tier"/>
      </standalone-application>
    
    CODE
  7. config.xml ファイルを保存。
  8. AppDynamics.Agent.Coordinator サービスを再起動します。
  9. インストゥルメント化されたアプリケーション(Windowsサービスまたはスタンドアロンアプリケーション)を再起動。

複数の AppDomain を持つスタンドアロン アプリケーション構成のサンプル

この config.xml サンプルファイルでは、アプリケーション MyApp.exe の構成を示します。インストゥルメンテーションは config.xml ファイルに指定された複数の AppDomain(MyApp.exeMyAppDomain2)のみに適用されます。
Standalone AppDomain (Sample)

<?xml version="1.0" encoding="utf-8"?>
<appdynamics-agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <controller host="mycontroller.mycompany.com" port="8090" ssl=false">
	<account name="customer1" password="changeme" />
    <application name="MyDotNetApplication" />
  </controller>
  <machine-agent />
  <app-agents>
    <standalone-applications>
      <standalone-application executable="MyApp.exe" app-domain-name="MyApp.exe">
        <tier name="StandaloneApplication Tier"/>
      </standalone-application>
      <standalone-application executable="MyApp.exe" app-domain-name="MyAppDomain2">
        <tier name="StandaloneApplication Tier"/>
      </standalone-application>
    </standalone-applications>
  </app-agents>
</appdynamics-agent>
CODE