WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

.NET-Assembly zur Ausführungszeit angeben

Diese Regeln bestimmen, wie die .NET-Assembly aus dem Brokerdateisystem geladen wird, wenn sie nicht in der BAR-Datei paketiert ist.

Die .NET-Konfiguration für einen Broker wird durch Eigenschaften im .NET-Knoten oder die Signatur der ESQL-Prozedur gesteuert. Optional kann ein konfigurierbarer DotNetAppDomain-Service für weitere Konfigurationsoptionen definiert werden. Ein Nachrichtenfluss kann unter Verwendung der Microsoft Common Language Runtime (CLR) Assemblierungen aufrufen, die innerhalb der Ausführungsgruppe eines Brokers ausgeführt werden. Entwickler von Nachrichtenflüssen können die geladenen .NET-Framework-Assemblierungen und die verwendeten .NET-Anwendungsdomänen steuern. Assemblierungen werden entweder aus einem .NET-Knoten in einem Nachrichtenfluss heraus oder durch den Aufruf einer ESQL-Prozedur aufgerufen.

Anwendungsdomänen

Das .NET-Framework trennt Anwendungsassemblierungen für die Ausführung in einer bestimmten Anwendungsdomäne, die für eine Anwendung einen Ressourcengeltungsbereich bereitstellen. In WebSphere Message Broker wird die Common Language Runtime (CLR) vom Betriebssystemprozess der Ausführungsgruppe (DataFlowEngine) betrieben. Innerhalb dieses Prozesses können .NET-Assemblys bei Bedarf in mehreren Anwendungsdomänen ausgeführt werden.
  • Die Eigenschaft AppDomain name eines .NET-Knotens gibt die Anwendungsdomäne an, in die die Assembly geladen werden soll. Ist ein konfigurierbarer DotNetAppDomain-Service mit demselben Namen wie dem unter AppDomain-Name des Knotens angegebenen Namen definiert, haben die Eigenschaften des konfigurierbaren Service beim Laden der Assembly Vorrang. Zu diesen Eigenschaften zählt beispielsweise auch die Eigenschaft Application Base directory (Basisverzeichnis der Anwendung).
  • Wenn eine ESQL-Prozedur eine .NET-Assembly aufruft, kann die Signatur der Prozedur die Anwendungsdomäne angeben, in der die Assembly geladen werden muss. Ist ein konfigurierbarer DotNetAppDomain-Service mit dem Namen definiert, der in der Signatur der ESQL-Prozedur für die Anwendungsdomäne angegeben ist, haben die Eigenschaften des konfigurierbaren Service (beispielsweise Application Base directory (Basisverzeichnis der Anwendung) beim Laden der Assembly Vorrang.
Wurde keine Anwendungsdomäne mit den genannten Verfahren angegeben, wird die Anwendungsdomäne, in der die Assembly geladen wird, anhand folgender Punkte ermittelt:
  • Der Name der Anwendung, falls die Implementierung in einer WebSphere Message Broker-Anwendung erfolgte.
  • Der Name der Ausführungsgruppe, falls die Implementierung in einem Fluss erfolgte, der in einer WebSphere Message Broker-Anwendung nicht definiert ist.
Wenn die Anwendungsdomäne über den Namen der Anwendung oder Ausführungsgruppe bestimmt wird und ein konfigurierbarer DotNetAppDomain-Service mit demselben Namen definiert ist, haben die Eigenschaften des konfigurierbaren Service (beispielsweise Application Base directory (Basisverzeichnis der Anwendung) beim Laden der Assembly Vorrang. Enthält der Name der Anwendung oder Ausführungsgruppe Leerzeichen, werden diese beim Vergleich des Anwendungs- oder Ausführungsgruppennamens mit dem Namen des konfigurierbaren Service ignoriert.

Basisverzeichnis der Anwendung

Um festzustellen, welche Kopie einer Assembly geladen wird, müssen Sie zunächst das Basisverzeichnis der Anwendung ermitteln.
  1. Wenn die Eigenschaft der Anwendungsdomäne auf einen konfigurierbaren Service verweist, wird die Eigenschaft ApplicationBase des konfigurierbaren Service verwendet. Halten Sie sich in Produktionsumgebungen an diese Vorgehensweise.
    Anmerkung: Die Eigenschaften des konfigurierbaren Service, einschließlich ApplicationBase, haben immer Vorrang, selbst wenn Sie eine .NET-Anwendungsdomäne mit den Assemblys zur Ausführungszeit implementiert haben. Damit in dieser Situation die .NET-Assembly aus der .appdomainzip-Datei und nicht aus dem Application Base geladen wird, müssen Sie sicherstellen, dass für die Eigenschaft ApplicationBase des konfigurierten Service kein Wert angegeben ist.
  2. Ist in der Eigenschaft für den Assembly-Namen des .NET-Knotens (oder einem entsprechenden Teil der ESQL-Prozedursignatur) eine absolute Position im Dateisystem angegeben, wird dieser vollständige Verzeichnispfad als Anwendungsbasisverzeichnis verwendet.
  3. Ist in der Eigenschaft für den Assembly-Namen des .NET-Knotens (oder einem entsprechenden Teil der ESQL-Prozedursignatur) lediglich der Name der DLL-Datei ohne Pfad angegeben, verwendet der Broker als Anwendungsbasisverzeichnis ein Unterverzeichnis des Arbeitspfads des Laufzeitbrokers. Dieses Verzeichnis kann sich ändern - erwägen Sie andere Methoden.

Laden der Assembly und Global Assembly Cache

Der Broker erwartet die erforderliche .NET-Assembly im Anwendungsbasisverzeichnis. Sie können Assemblys jedoch auch in einen systemweiten Cache stellen, der als Global Assembly Cache (GAC) bezeichnet wird. Eine Assembly, die in den GAC gestellt werden soll, muss einen starken Namen haben: Die Assembly erhält bei ihrer Kompilierung die Eigenschaften einer Version, Kultur und eines öffentlichen Schlüsseltokens. Wenn Sie den .NET-Knoten oder einen Aufruf aus ESQL konfigurieren, können Sie die Version, Kultur und das öffentliche Schlüsseltoken der Assembly mit dem starken Namen angeben, die verwendet werden sollen.

Sie müssen die Ausführungsgruppe erneut starten, wenn Sie eine Assembly mit einem starken Namen erneut laden oder aktualisieren möchten.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:41


TaskthemaTaskthema | Version 8.0.0.5 | bc34225_