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.

Speicherverwaltung in benutzerdefinierten Knoten

Berücksichtigen Sie die Probleme, die bei der Entwicklung benutzerdefinierter Erweiterungen in der Programmiersprache C in Zusammenhang mit der Speicherverwaltung stehen.

Wenn Sie benutzerdefinierte Erweiterungen in Java™ entwickeln, können Sie die Java-Standardmethoden für die Zeichenfolgebearbeitung verwenden.

Der gesamte Speicher, der von einer benutzerdefinierten Erweiterung angelegt wird, muss von der benutzerdefinierten Erweiterung auch wieder freigegeben werden. Bei der Erstellung eines Knotens während der Laufzeit wird die Funktion cniCreateNodeContext aufgerufen, die es der benutzerdefinierten Erweiterung ermöglicht, Datenbereiche zum Speichern von Kontextdaten für die Knoteninstanz anzulegen. Die Kontextadresse wird an den Broker zurückgegeben und vom Broker wieder zurückgegeben, wenn durch eine interne Methode benutzerdefinierte Erweiterungsfunktionen aufgerufen werden; auf diese Weise kann eine in C erstellte benutzerdefinierte Erweiterung den richtigen Kontext für die Verarbeitung der Funktion ermitteln und verwenden.

Der Broker übergibt die Adressen von C++-Objekten an die benutzerdefinierte Erweiterung, die als Kennung zur erneuten Übergabe in den folgenden Funktionsaufrufen verwendet wird. In C erstellte benutzerdefinierte Erweiterungen sollten nicht in der Lage sein, diese Zeiger zu manipulieren oder zu verwenden, beispielsweise indem versucht wird, mithilfe der Funktion free Speicher freizugeben. Diese Aktionen verursachen ein unvorhersehbares Verhalten im Broker.

Die Implementierungsfunktion cniCreateNodeContext wird immer dann aufgerufen, wenn das zugrunde liegende Knotenobjekt intern erstellt wurde. Sie wird aufgerufen, wenn ein Broker mit einem Nachrichtenfluss definiert wird, der einen benutzerdefinierten Knoten verwendet. Diese Aktivität ist nicht unbedingt dieselbe wie die Erstellung (oder Wiederverwendung) eines Threads für die Ausführung einer Nachrichtenflussinstanz, die einen solchen Knoten enthält. Die Funktion cniCreateNodeContext wird nur während der Konfiguration des Nachrichtenflusses aufgerufen, unabhängig davon, wie viele Threads für die Ausführung des Nachrichtenflusses verwendet werden.

Ähnliche Überlegungen gelten auch für benutzerdefinierte Parser und die entsprechende Implementierungsfunktion cpiCreateContext.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:58


KonzeptthemaKonzeptthema | Version 8.0.0.5 | as01440_