.NET アプリケーション・ドメインは、.NET アセンブリー用およびメッセージ・フローで .NET コードが使用する関連リソース用のランタイム・コンテナーです。
メッセージ・フロー内の .NET アセンブリーは、.NETCompute ノードまたは ESQL プロシージャーから呼び出すことができます。.NET アセンブリーをライブラリーの依存関係として組み込むこともできます。 これらのアセンブリーは .NET アプリケーション・ドメイン で実行され、ブローカー・アーカイブ (BAR) ファイルにパッケージ化できます。 アプリケーション・ドメインは、アプリケーションとライブラリーのピアとしてナビゲーター・ビューに示されます。
指定された .NET アプリケーション・ドメインは、WebSphere® Message Broker アプリケーションに関連付けることができます。 .NET アプリケーション・ドメイン に含まれるアセンブリーまたは関連リソースは、参照元のメッセージ・フローまたはアプリケーションとともにデプロイされます。 複数のアプリケーションに同じ .NET アプリケーション・ドメイン を関連付けることができます。 これは、データおよびその他のリソースを、実行時に複数のアプリケーションで共有できることを意味します。
WebSphere Message Broker Toolkit で .NET アプリケーション・ドメインを作成することで、CLR (共通言語ランタイム) で実行する .NET アセンブリーおよび関連リソースを任意にパッケージ化できます。 ただし、このツールキットで明示的に .NET アプリケーション・ドメインを作成する必要はありません。
.NET アプリケーション・ドメインを明示的に作成しない場合、.NET ノードに AppDomain プロパティーの値を設定しなければ、.NET アセンブリーを暗黙的 .NET アプリケーション・ドメインに含めることもできます。AppDomain ノード・プロパティーを設定しない場合、ワークスペース内のメッセージ・フローが .NET アセンブリーを呼び出すとき、またはワークスペース内のライブラリーに .NET アセンブリーが含まれているときに、暗黙的アプリケーション・ドメインがナビゲーターに示されます。 実行時に、暗黙的アプリケーション・ドメインはブローカーによって自動的に作成されます。このアプリケーション・ドメインには、参照元アプリケーションの名前が使用されます。または、アプリケーションにメッセージ・フローが含まれていない場合には実行グループの名前が使用されます。
これは、実行時のアプリケーション・ドメインの名前が、所有アプリケーションまたは実行グループの名前に応じて異なることを意味します。つまり、アプリケーションまたは実行グループが名前変更された場合、ドメインの名前も変更されます。 また、アセンブリーが、2 つの異なるアプリケーションによって参照されている 1 つのライブラリーに含まれている場合、そのアセンブリーが実行されるアプリケーション・ドメインの名前は、所有アプリケーションに応じて異なります。
次の例を考えてみます。ライブラリー MyLib に .NET アセンブリーが含まれており、アプリケーション App1 から参照されています。 App1 がデプロイされると、ライブラリーのコピーが作成され、.NET アセンブリーがアプリケーションの名前 (App1) を使用した .NET アプリケーション・ドメインで実行されます。 ただし、MyLib がアプリケーション App2 によっても参照されている場合、ライブラリーの別個のコピーが作成され、アセンブリーの 2 つ目のコピーが実行されるアプリケーション・ドメインの名前は App2 となります。