複数のアプリケーションドメイン(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 エージェントのすべてのインストゥルメンテーション設定を構成します。「Administer the .NET Agent」を参照してください。

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

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

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

    Instrumentable AppDomains

  2. 管理者としてテキストエディタを起動。
  3. 管理者として config.xml ファイルを編集します。詳細については、Administer the .NET Agentを参照してください。
  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