.NET-Assembly zur Laufzeit angeben

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

Informationen zu dieser Task

Die .NET-Konfiguration für einen Integrationsserver wird durch Eigenschaften im .NET-Knoten oder die Signatur der ESQL-Prozedur gesteuert. Optional kann auch eine Richtlinie für DotNet-Anwendungsdomänen für weitere Konfigurationsoptionen definiert werden. Ein Nachrichtenfluss kann Assemblys aufrufen, die in einem Integrationsserver ausgeführt werden, der die Microsoft Common Language Runtime (CLR) verwendet. Entwickler von Nachrichtenflüssen können die geladenen .NET-Framework-Assemblys und die verwendeten .NET-Anwendungsdomänen steuern. Assemblys werden entweder aus einem .NET-Knoten in einem Nachrichtenfluss heraus oder durch den Aufruf einer ESQL-Prozedur aufgerufen.

Anwendungsdomänen

Informationen zu dieser Task

Das .NET-Framework trennt Anwendungs-Assemblys für die Ausführung in einer bestimmten Anwendungsdomäne, die für eine Anwendung einen Ressourcengeltungsbereich bereitstellen. In „ IBM® App Connect Enterprise “ hostet der Betriebssystemprozess des Integrationsservers ( DataFlowEngine ) die CLR. 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. Wenn eine Richtlinie für die Anwendungsdomäne „ DotNet “ mit demselben Namen wie die AppDomain name Eigenschaft des Knotens definiert ist, haben die Eigenschaften der Richtlinie beim Laden der Assembly Vorrang. Solche Eigenschaften umfassen die Eigenschaft Application Base directory .
  • Wenn eine ESQL-Prozedur eine .NET-Assembly aufruft, kann die Signatur der Prozedur die Anwendungsdomäne angeben, in der die Assembly geladen werden muss. Wenn eine Richtlinie für die Anwendungsdomäne „ DotNet “ mit dem Namen definiert ist, der in der Signatur der ESQL-Prozedur für die Anwendungsdomäne angegeben ist, haben die Eigenschaften der Richtlinie (z. B. die Application Base directory) beim Laden der Assembly Vorrang.
Wurde keine Anwendungsdomäne mit den genannten Verfahren angegeben, wird die Anwendungsdomäne, in der die Assembly geladen wird, wie folgt ermittelt:
  • Der Name der Anwendung, sofern diese innerhalb einerIBM App Connect Enterprise “-Anwendung bereitgestellt wird
  • Der Name des Integrationsservers, sofern dieser in einem Ablauf bereitgestellt wird, der nicht innerhalb einerIBM App Connect Enterprise “-Anwendung definiert ist

Wenn die Anwendungsdomäne durch den Namen der Anwendung oder den Namen des Integrationsservers bestimmt wird und eine DotNet -Anwendungsdomänenrichtlinie mit demselben Namen definiert ist, haben die Richtlinieneigenschaften (z. B. Application Base directory) Vorrang, wenn die Assembly geladen wird. Enthält der Name der Anwendung oder des Integrationsservers Leerzeichen, werden diese Leerzeichen beim Vergleich des Anwendungs- oder Integrationsservernamens mit dem Namen der Richtlinie ignoriert.

Basisverzeichnis der Anwendung

Informationen zu dieser Task

Um festzustellen, welche Kopie einer Assembly geladen wird, müssen Sie zunächst das Basisverzeichnis der Anwendung ermitteln.
  1. Wenn die Eigenschaft Application domain auf eine Richtlinie verweist, wird die Eigenschaft Application base der Richtlinie verwendet. Halten Sie sich in Produktionsumgebungen an diese Vorgehensweise.
    Hinweis: Die Richtlinien-Eigenschaften, einschließlich Application base, haben immer Vorrang, selbst wenn Sie eine Anwendungsdomäne vom Typ „.NET “ bereitgestellt haben, die die Assemblies in der Laufzeitumgebung enthält. Damit in dieser Situation die .NET-Assembly aus der .appdomainzip-Datei und nicht aus dem Anwendungsbasisverzeichnis geladen wird, müssen Sie sicherstellen, dass für die Eigenschaft Application base der Richtlinie kein Wert angegeben ist.
  2. Ist über die 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) nur der Name der .dll-Datei ohne Pfad angegeben, verwendet der Integrationsknoten für das Anwendungsbasisverzeichnis ein Unterverzeichnis im Arbeitspfad des Laufzeitintegrationsknotens. Dieses Verzeichnis kann sich ändern - erwägen Sie andere Methoden.

Laden der Assembly und Global Assembly Cache

Informationen zu dieser Task

Der Integrationsknoten 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. Beim Konfigurieren des .NET-Knotens oder eines Aufrufs aus ESQL können Sie die Version, die Sprache und das öffentliche Schlüsseltoken der Assembly mit einem starken Namen angeben, die verwendet werden sollen.

Soll eine Assembly mit einem starken Namen erneut geladen oder aktualisiert werden, müssen Sie den Integrationsserver erneut starten.