[18.0.0.1 und höher]

Nachrichten mit Nachrichtenendpunkten in Liberty verwalten

Verwalten Sie die Nachrichtenübermittlung für MDBs (Message-driven Beans), die als Nachrichtenendpunkte implementiert werden.

Informationen zu diesem Vorgang

Sie können einen Serverbefehl oder eine MBean verwenden, um die Übermittlung Ihrer MDBs zu verwalten, die als Listener an bestimmten Endpunkten, so genannten Zielen, fungieren. Mit einem Serverbefehl oder einer MBean können Sie EIS-Ressourcen (Enterprise Information System) verwalten, die Ihre MDBs verwenden.

Sie können mit einem Serverbefehl und einer MBean bestimmte Endpunkte in Ihren Anwendungen aktivieren und inaktivieren, um sicherzustellen, dass Nachrichten nur empfangsbereiten MDBs übermittelt werden, die mit EIS-Ressourcen in einwandfreiem Zustand interagieren. Diese Funktionalität ermöglicht Ihnen, die Leistung Ihrer JMS-Anwendungen in Situationen zu optimieren, in denen eine EIS-Ressource sich nicht erwartungskonform verhält. Die Nachrichtenübermittlung schlägt fehl, wenn die empfangsbereite MDB eine Operation an einer Ressource aufruft, deren Zustand nicht einwandfrei ist. Ein Messaging-Provider, der als Ressourcenadapter für eingehende Nachrichten fungiert, schlägt z. B. möglicherweise bei der Nachrichtenübermittlung an einen Endpunkt fehl, wenn die zugrundeliegende MDB versucht, Transaktionen in einem Datenbankserver festzuschreiben, der nicht antwortet.
Tipp: Entwickeln Sie Ihre MDBs so, dass die Verarbeitung von Geschäftsprozessen an andere Enterprise-Beans delegiert wird. Greifen Sie nicht direkt auf die EIS-Ressourcen in der Message-driven Bean zu, sondern indirekt über eine delegierte Bean.
Die Möglichkeit, Nachrichtenendpunkte zu aktivieren und zu inaktivieren, verringert das Ausmaß von zwei Problemen mit Anwendungen, die Nachrichtenendpunkte bereitstellen, die auf Ressourcen zugreifen:
  • Fehlgeschlagene Nachrichten erfordern zusätzliche Verarbeitungsschritte, wie z. B. die erneute Übermittlung an den empfangsbereiten Endpunkt oder die Umleitung an alternative Ziele, an denen die fehlgeschlagenen Nachrichten verarbeitet werden. Des Weiteren kann es vorkommen, dass ein Ressourcenadapter möglicherweise versucht, eine Nachricht an einen Endpunkt unendlich oft erneut zuzustellen.
  • Die Nachrichtenumleitung erfordert die Implementierung spezialisierter Ziele (Warteschlangen und Listener), um fehlgeschlagene Nachrichten und die Logik zur Ermittlung von Nachrichtenfehlern zu verarbeiten. Das Konzept der Nachrichtenumleitung ist aufgrund der Komplexität potenziell fehlerträchtig und rechentechnisch kostenintensiv.

Die Möglichkeit, einen bestimmten Nachrichtenendpunkt zu inaktivieren (anhalten) und zu reaktivieren (fortsetzen) mildert diese Probleme dahingehend, dass ein Administrator in der Lage ist, den Endpunkt für die Verarbeitung der Nachrichten zu inaktivieren, die fehlschlagen werden. Wenn der Nachrichtenendpunkt inaktiviert ist, können Sie die Ressource, die die Probleme verursacht, reparieren und den Endpunkt reaktivieren, um die Verarbeitung von Nachrichtenanforderungen wiederaufzunehmen. Die Fehlerbehebung wirkt sich nicht auf den Ressourcenadapter oder die Anwendung aus, die den Endpunkt hostet.

Sie können auch das Attribut autoStart in der Aktivierungsspezifikation verwenden, damit der Nachrichtenendpunkt im Status "Inaktiviert" gestartet wird. Wenn Sie diese Eigenschaft auf false setzen, empfängt die Message-driven Bean keine Nachrichten, wenn die Anwendung gestartet wird. Verwenden Sie diese Einstellung, damit ein Nachrichtenendpunkt automatisch inaktiviert wird, wenn Sie wissen, dass bestimmte Tasks ausgeführt, Services gestartet oder Überprüfungen ausgeführt werden müssen, bevor mit der Nachrichtenverarbeitung begonnen wird. Sie reaktivieren den Nachrichtenendpunkt auf dieselbe Weise wie Sie ihn im Betrieb angehalten haben. Der Standardwert für das Attribut autoStart ist true.

Vorgehensweise

Ergebnisse

Das Verhalten, das Sie beim Inaktivieren (Anhalten) eines Nachrichtenendpunkts beobachten, hängt von verschiedenen Faktoren ab, einschließlich dem Ressourcenadapter, der den Nachrichtenendpunkt verwaltet, der Konfiguration des Nachrichtenendpunkts und der Anwendungsservertopologie ab. Nachfolgenden werden einige interessante Beispiele genannt:

An einem nicht permanenten Topic empfangsbereite MDB
Das mit dem Inaktivieren (Anhalten) eines Nachrichtenendpunkts verbundene Verhalten ist häufig von der Funktion abhängig, die die Inaktivierung durchführt. Wenn Sie beispielsweise eine MDB (Message-driven Bean) als Listener an einem nicht permanenten Topic konfiguriert haben, bewirkt die Inaktivierung des Nachrichtenendpunkts, dass die Subkription geschlossen wird. Die Message-driven Bean empfängt keine Nachrichten, die zu der Zeit veröffentlicht werden, in der der Nachrichtenendpunkt angehalten ist.
An einem permanenten Topic empfangsbereite MDB
Wenn Sie beispielsweise eine MDB als Listener an einem permanenten Topic konfiguriert haben, bewirkt die Inaktivierung des Nachrichtenendpunkts, dass die Subskription geschlossen wird. Je nach Konfiguration wird möglicherweise die Verarbeitung von Nachrichten, die veröffentlicht werden, während der Nachrichtenendpunkt angehalten ist, zurückgestellt, bis der Nachrichtenendpunkt wiederaufgenommen wird, sodass die Nachrichten dann verarbeitet werden können.
MDBs mit Clustering
Wenn Ihre Messaging-Engine Clustering unterstützt, können Sie je nach Konfiguration möglicherweise Nachrichten, die für den inaktivierten (angehaltenen) Nachrichtenendpunkt bestimmt sind, so aktivieren, dass sie an andere MDBs umgeleitet werden.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_msgendpoint.html