Eine .NET-Anwendungsdomäne ist ein Laufzeitcontainer für .NET-Assemblierungen und zugehörige Ressourcen, die vom .NET-Code in Ihren Nachrichtenflüssen verwendet werden.
.NET-Assemblierungen in Ihren Nachrichtenflüssen können aus dem .NETCompute-Knoten, .NETInput-Knoten oder aus einer ESQL-Prozedur aufgerufen werden. Sie können .NET-Assemblierungen auch als Abhängigkeiten einer Bibliothek einbeziehen. Diese Assemblierungen werden in einer .NET-Anwendungsdomäne ausgeführt und können in eine Brokerarchivdatei (BAR-Datei) gepackt werden. Anwendungsdomänen werden in der Navigatoransicht als Peers von Anwendungen und Bibliotheken angezeigt.
Eine benannte .NET-Anwendungsdomäne kann IBM® Integration Bus-Anwendungen zugeordnet werden. Assemblierungen oder zugehörige Ressourcen, die in der .NET-Anwendungsdomäne enthalten sind, werden zusammen mit dem referenzierenden Nachrichtenfluss bzw. der referenzierenden Anwendung implementiert. Ein und derselben .NET-Anwendungsdomäne können mehrere Anwendungen zugeordnet werden. Dies bedeutet, dass Daten und andere Ressourcen zur Laufzeit von mehreren Anwendungen gemeinsam genutzt werden können.
Wenn Sie eine .NET-Anwendungsdomäne im IBM Integration Toolkit erstellen, können Sie Ihre .NET-Assemblierungen und zugehörigen Ressourcen wie gewünscht für die Ausführung in der CLR (Common Language Runtime) paketieren. Sie müssen jedoch nicht explizit eine .NET-Anwendungsdomäne im Toolkit erstellen.
Wenn Sie nicht explizit eine .NET-Anwendungsdomäne erstellen und keinen Wert für die Eigenschaft AppDomain auf dem .NET-Knoten angeben, können .NET-Assemblierungen auch in einer impliziten .NET-Anwendungsdomäne enthalten sein. Wenn Sie die Knoteneigenschaft AppDomain nicht angeben, wird im Navigator eine implizite Anwendungsdomäne angezeigt, wenn ein Nachrichtenfluss in Ihrem Arbeitsbereich eine .NET-Assemblierung aufruft oder eine Bibliothek in Ihrem Arbeitsbereich .NET-Assemblierungen einbezieht. Die implizite Anwendungsdomäne wird zur Ausführungszeit automatisch vom Broker erstellt und erhält den Namen der referenzierenden Anwendung oder den Namen des Integrationsservers, wenn der Nachrichtenfluss nicht in einer Anwendung enthalten ist.
Der Name der Anwendungsdomäne zur Laufzeit hängt also vom Namen der Eigneranwendung bzw. des Integrationsservers ab und ändert sich, wenn die Anwendung oder der Integrationsserver umbenannt wird. Außerdem gilt Folgendes: Wenn eine Assemblierung in einer Bibliothek enthalten ist, auf die von zwei verschiedenen Anwendungen verwiesen wird, hat die Anwendungsdomäne, unter welcher diese Assemblierung ausgeführt wird, abhängig von der jeweiligen Eigneranwendung einen jeweils anderen Namen.
Betrachten wir folgendes Beispiel: Eine Bibliothek 'MeineBibliothek' umfasst eine .NET-Assemblierung. Auf die Bibliothek wird von Anwendung 'Anw1' verwiesen. Bei der Implementierung von 'Anw1' wird eine Kopie der Bibliothek erstellt und die .NET-Assemblierung wird in einer .NET-Anwendungsdomäne ausgeführt, die den Namen der Anwendung, also 'Anw1', annimmt. Wird auf 'MeineBibliothek' jedoch auch von der Anwendung 'Anw2' verwiesen, wird eine separate Kopie der Bibliothek erstellt und nimmt die Anwendungsdomäne, in der die zweite Kopie der Assemblierung ausgeführt wird, den Namen 'Anw2' an.