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.

Lebenszyklus von benutzerdefinierten Nachrichtenverarbeitungsknoten in Java

Im Lebenszyklus der benutzerdefinierten Knoten, die Sie in Java™ erstellen, werden Objekte erstellt und gelöscht sowie verschiedene Methoden und Klassen aufgerufen.

Jeder Knoten durchläuft die folgenden Stadien:

Die Informationen in diesem Abschnitt gelten sowohl für Sendeknoten als auch für Nachrichtenverarbeitungsknoten. Beide Knotentypen können zusammen abgehandelt werden, da Letztere zwar typischerweise für die Nachrichtenverarbeitung verwendet werden, während Erstere eine Ausgabe (in Form eines Bitstroms) einer Nachricht zur Verfügung stellen, diese beiden Funktionen aber von beiden Knoten übernommen werden können.

Registrierung

Die Registrierungsphase setzt ein, wenn ein benutzerdefinierter Nachrichtenverarbeitungsknoten in Java den Broker kontaktiert oder sich bei ihm registriert.

Beim Start eines Brokers werden alle relevanten LIL-Dateien und Java-Klassen geladen. Um sicherzustellen, dass ein Nachrichtenverarbeitungsknoten auch tatsächlich beim Broker registriert ist, müssen Sie für den Broker eine Klasse bereitstellen, die die Schnittstelle MbNodeInterface implementiert und in dem Klassenpfad, der vom Broker verwendet wird, enthalten ist.

Instanzerstellung

Ein benutzerdefinierter Nachrichtenverarbeitungsknoten in Java wird instanziiert, wenn ein Broker einen Nachrichtenfluss mit einem benutzerdefinierten Nachrichtenverarbeitungsknoten implementiert. Bei der Instanzerstellung wird der Konstruktor der Klasse des Nachrichtenverarbeitungsknotens aufgerufen.

Wenn ein Knoten instanziiert wird, werden alle angegebenen Terminals erstellt. Einem Nachrichtenverarbeitungsknoten kann eine unbegrenzte Zahl von Ein- und Ausgabeterminals zugeordnet sein. Sie müssen die Methoden createInputTerminal und createOutputTerminal in ihren Knoten-Konstruktor aufnehmen, um diese Terminals zu deklarieren.

Ausgabeterminals sind Out-, Failure- und Catch-Terminals. Mit der Klasse createOutputTerminal im Konstruktor der Knotenklasse können Sie alle erforderlichen Ausgabeterminals erstellen.

Als Minimum reicht es aus, wenn Sie diese Ausgabeterminals durch Verwendung Ihrer Konstruktorklasse erstellen. Wenn allerdings Attributwerte initialisiert werden müssen, dann müssen Sie diesen Code auch an dieser Stelle in den Nachrichtenverarbeitungsknoten einfügen.

Sollen Ausnahmebedingungen behandelt werden, die an den Nachrichtenverarbeitungsknoten zurückgegeben wurden, dann sollten Sie hierzu unter Verwendung der Methode createOutputTerminal ein Fehlerterminal (Failure) für den Nachrichtenverarbeitungsknoten erstellen. Ein Fehlerterminal (Failure) ist in diesem Fall sinnvoll, da Fehler an dieses Terminal weitergegeben werden.

Stellen Sie sicher, dass alle vom Nachrichtenverarbeitungsknoten abgefangenen Ausnahmebedingungen richtig behandelt werden. Wenn Sie kein Fehlerterminal (Failure) verwenden, verarbeitet der Nachrichtenverarbeitungsknoten die Ausnahmebedingung nicht. Enthält der Nachrichtenfluss keine Methode für die Ausnahmebedingungsbehandlung, werden alle ausgelösten Ausnahmebedingungen an den Empfangsknoten zurückgegeben, der die Ausnahmebedingungen dann verarbeitet.

Wenn Sie Ausnahmebedingungen abfangen, stellen Sie sicher, dass die Ausnahmebedingungen, mit denen der Nachrichtenverarbeitungsknoten nichts anfangen kann, erneut ausgelöst werden. So wird die Ausnahmebedingung zur Behandlung wieder zurück an den Empfangsknoten gegeben, zum Beispiel dann, wenn Sie eine Transaktion rückgängig machen möchten.

Verarbeitung

Während der Verarbeitungsphase im Lebenszyklus eines benutzerdefinierten Nachrichtenverarbeitungsknotens übernimmt dieser die logische Hierarchie der Nachricht und verarbeitet sie.

Löschen

Ein mit Java erstellter benutzerdefinierter Nachrichtenverarbeitungsknoten wird gelöscht, wenn der Knoten gelöscht bzw. der Broker beendet wird. Sie müssen im Code nicht explizit angeben, dass der Knoten physisch gelöscht werden soll, da dieser Prozess vom Garbage-Collector übernommen werden kann.

Wenn Sie jedoch benachrichtigt werden möchten, wenn die Löschung eines Knotens bevorsteht, können Sie die Methode onDelete verwenden. Solch eine Benachrichtigung ist beispielsweise sinnvoll, wenn der Knoten neben den Ressourcen, die der Garbage-Collection unterliegen, über andere Ressourcen verfügt, die gelöscht werden sollen. Wenn Sie beispielsweise einen Socket geöffnet haben, wird dieser nicht ordnungsgemäß geschlossen, wenn der Knoten automatisch gelöscht wird. Sie können diese Anweisung in Ihre onDelete-Methode aufnehmen, um sicher zu stellen, dass der Socket ordnungsgemäß geschlossen wird.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

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


KonzeptthemaKonzeptthema | Version 8.0.0.5 | as24999_