Download PDF
Download page アプリケーションドメインモニタリングの構成.
アプリケーションドメインモニタリングの構成
複数のアプリケーションドメイン(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 の 1 つと同じ名前の場合もありますが、その他の AppDomain は独自の名前になります。デフォルトでは、エージェントはすべてのAppDomain内でインストールされ、それぞれらのノードを作成します。
複数のアプリケーションドメインのモニタリング構成
モニタ対象のアプリケーションに複数の Appdomain が含まれている場合、.NET のアプリケーション エージェントは自動的に各 AppDomain をインストゥルメント化し、ノードを作成します。指定した AppDomain のみをインストゥルメント化するように .NET Agentを構成できます。これを使用して、モニタ対象ではない Appdomain を除外し、ティア内のノード数を制限します。
以下を対象としたアプリケーションドメインのモニタリングを構成できます。
- Windowsサービス
- スタンドアロンアプリケーション
config.xml ファイルで .NET エージェントのすべてのインストゥルメンテーション設定を構成します。「.NETエージェントの管理」を参照してください。
インストゥルメント化する AppDomain の名前を指定。
すでにアプリケーションをインストゥルメント化してある場合、ノードのダッシュボードで AppDomain 名を確認できます。
左のナビゲーションペインでノードをクリックして、CLR をクリック。- 管理者としてテキストエディタを起動。
- 管理者として
config.xml
ファイルを編集します。詳細については、.NETエージェントの管理を参照してください。 - 複数の AppDomain があるアプリケーションに対応するエレメントを見つける。
スタンドアロン アプリケーション エレメント:<standalone-application executable="MyWindowsApplication.exe">
このエレメントに
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 はインストゥルメント化されません。さらにAppDomainをインストゥルメント化するには、各ドメインのエレメントを分離アプリケーションのように追加します。
MyApp.exe
でMyAppDomain1
をインストゥルメント化する例を示します。<standalone-application executable="MyApp.exe" app-domain-name="MyAppDomain1"> <tier name="StandaloneApplication Tier"/> </standalone-application>
CODEconfig.xml
ファイルを保存。AppDynamics.Agent.Coordinator
サービスを再起動します。- インストゥルメント化されたアプリケーション(Windowsサービスまたはスタンドアロンアプリケーション)を再起動。
複数の AppDomain を持つスタンドアロン アプリケーション構成のサンプル
この config.xml
サンプルファイルでは、アプリケーション MyApp.exe
の構成を示します。インストゥルメンテーションは config.xml
ファイルに指定された複数の AppDomain(MyApp.exe
と MyAppDomain2
)のみに適用されます。
<?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>