Nachrichten mit Nachrichtenendpunkten verwalten

Sie können die Zustellung für nachrichtengesteuerte Beans (MDB, Message-driven Bean) verwalten, die als Nachrichtenendpunkte implementiert sind. Die Nachrichtenendpunkte sind Managed Beans (MBeans) für eingehende Ressourcenadapter, die mit Java™ Platform, Enterprise Edition (Java EE) Connector Architecture (JCA) Version 1.5 kompatibel sind.

Informationen zu diesem Vorgang

Ein Anwendungsserver stellt MBeans als Nachrichtenendpunkte bereit, um Sie bei der Verwaltung der Nachrichtenzustellung an Ihre MDBs, die als Listener an bestimmten Endpunkten, den Zielen, eingesetzt werden, und bei der Verwaltung der Ressourcen des unternehmensweiten Informationssystems zu unterstützen, die von diesen MDBs verwendet werden. Als Nachrichtenendpunkte implementierte MDBs sind nicht identisch mit MDBs, die für einen Listener-Port definiert werden. MDBs, die als Nachrichtenendpunkte verwendet werden, müssen über eine Aktivierungsspezifikation implementiert werden, die in einer Ressourcenadapterkonfiguration für JCA Version 1.5 definiert ist.
Mit Nachrichtenendpunkt-MBeans können Sie bestimmte Endpunkte in Ihren Anwendungen aktivieren und inaktivieren, um sicherzustellen, dass Nachrichten nur empfangsbereiten MDBs zugestellt werden, die mit einwandfrei funktionierenden Ressourcen des unternehmensweiten Informationssystems interagieren. Diese Funktionalität ermöglicht Ihnen, die Leistung Ihrer JMS-Anwendungen in Situationen zu optimieren, in denen sich eine Ressource des unternehmensweiten Informationssystems nicht wie erwartet verhält. Die Nachrichtenzustellung an einen Endpunkt scheitert gewöhnlich, wenn die empfangsbereite MDB eine Operation für eine Ressource aufruft, die nicht einwandfrei funktioniert. Ein Messaging-Provider, der ein mit JCA Version 1.5 kompatibler Ressourcenadapter für eingehende Nachrichten ist, kann beispielsweise einem Endpunkt keine Nachrichten zustellen, wenn die im zugrunde liegende MDB versucht, Transaktionen auf einem Datenbankserver festzuschreiben, der nicht antwortet.
Anmerkung: Entwerfen Sie Ihre MDBs so, dass sie die Geschäftsverarbeitung an andere Enterprise-Beans delegiert. Greifen Sie in den MDBs nicht direkt auf die Ressourcen des unternehmensweiten Informationssystems zu, sondern indirekt über eine Delegate-Bean.
Nachrichtenendpunkt-MBeans unterstützen Sie bei zwei Problemen, die Anwendungen inhärent sind, die Nachrichtenendpunkte bereitstellen, die auf Ressourcen zugreifen:
  • Fehlgeschlagene Nachrichten erfordern weitere Verarbeitungsschritte, z. B. die erneute Zustellung an den empfangsbereiten Endpunkt oder eine Umleitung an alternative Ziele, die fehlgeschlagene Nachrichten verarbeiten. Außerdem kann ein Ressourcenadapter eine Nachricht einem Endpunkt unbegrenzt oft zustellen.
  • Die Nachrichtenumleitung erfordert die Implementierung spezieller Ziele (Warteschlangen und Listener), die fehlgeschlagene Nachrichten verarbeiten, sowie die Logik für die Erkennung von Nachrichtenfehlern. Die Nachrichtenumleitung ist potenziell fehleranfällig und aufgrund ihrer Komplexität rechenintensiv.

Diese Probleme werden durch die Möglichkeit gemildert, bestimmte Nachrichtenendpunkte inaktivieren (anhalten) und reaktivieren (fortsetzen) zu können. Dem Administrator kann ermöglicht werden, die Verarbeitung von Nachrichten am Endpunkt zu inaktivieren, die wahrscheinlich fehlschlagen. Wenn der Nachrichtenendpunkt inaktiviert ist, können Sie die Ressource, die ursächlich für die Probleme verantwortlich ist, reparieren. Anschließend können Sie den Endpunkt reaktivieren, damit die Behandlung der Nachrichtenanforderungen fortgesetzt wird. Der Ressourcenadapter und die Anwendung mit dem Endpunkt werden durch die Fehlerbehebung nicht beeinträchtigt.

Wenn Sie eine Verbindung zu WebSphere MQ herstellen, können Sie auch die angepasste Eigenschaft "WAS_EndpointInitialState" in der Aktivierungsspezifikation verwenden, um festzulegen, dass der Nachrichtenendpunkt beim Start den Status "Inaktiviert" hat. Wenn Sie diese Eigenschaft auf "Inactive" setzen, stellt die Message-driven Bean eine Verbindung zum Ziel her, beginnt aber nicht mit dem Empfang von Nachrichten. Verwenden Sie diese Einstellung, um einen Nachrichtenendpunkt automatisch zu inaktivieren, wenn Sie wissen, dass bestimmte Tasks ausgeführt, Services gestartet und Prüfungen durchgeführt werden müssen, bevor mit der Nachrichtenbearbeitung begonnen wird. Sie aktivieren den Nachrichtenendpunkt genauso, wie Sie einen Nachrichtenendpunkt reaktivieren würden, der während der Ausführung angehalten wurde.

Vorgehensweise

  1. Navigieren Sie in der Administrationskonsole zur Anzeige "Nachrichtenendpunkte" für die Anwendung, die den Nachrichtenendpunkt enthält.
    1. Wählen Sie Anwendungen > Anwendungstypen > Websphere-Unternehmensanwendungen > Anwendungsname aus.
    2. Wählen Sie die Anzeige Laufzeit aus.
    3. Wählen Sie Nachrichtenendpunkte aus. Daraufhin erscheint eine Anzeige mit einer Liste der Nachrichtenendpunkte, die in der Anwendung enthalten sind.
  2. Optional: Inaktivieren Sie einen Nachrichtenendpunkt vorübergehend, sodass keine Nachrichten mehr behandelt werden und das Problem behoben werden kann.
    1. Inaktivieren Sie den Nachrichtenendpunkt, indem Sie den entsprechenden Endpunkt auswählen und anschließend auf Anhalten klicken.
    2. Wenn der Nachrichtenendpunkt inaktiv ist, diagnostizieren und reparieren Sie die eigentliche Ursache für die Zustellungsfehler.
    3. Reaktivieren Sie den Nachrichtenendpunkt, indem Sie den entsprechenden Endpunkt auswählen und anschließend auf Fortsetzen klicken.
  3. Optional: Aktivieren Sie einen Nachrichtenendpunkt, der im Status "Inaktiviert" gestartet wurde. Wählen Sie den entsprechenden Endpunkt aus, und klicken Sie auf Fortsetzen.

Ergebnisse

Das beim Inaktivieren (Anhalten eines Nachrichtenendpunkts über die Nachrichtenendpunkt-MBean zu beobachtende Verhalten ist von einer Vielzahl von Faktoren abhängig, unter anderem vom Ressourcenadapter, der den Nachrichtenendpunkt verwaltet, der Konfiguration des Nachrichtenendpunkts und der Topologie des Anwendungsservers. Im Folgenden sind spezielle Beispiele beschrieben, die von Interesse sind:
  • An einem nicht permanenten Topic empfangsbereite MDB (konfigurationsabhängig): 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 als Listener an einem nicht permanenten Topic im Service Integration Bus konfiguriert haben, entspricht die Inaktivierung des Nachrichtenendpunkts dem Stoppen der Anwendung und bewirkt, dass die Subskription geschlossen wird. Das bedeutet, dass alle Nachrichten, die zu der Zeit veröffentlicht werden, in der der Nachrichtenendpunkt angehalten ist, von der MDB nicht empfangen werden.
  • Cluster-MDB (topologieabhängig): In diesem Szenario ist eine MDB in einem Server-Cluster implementiert. Eine bestimmte Nachrichtenendpunkt-MBean steuert nur das Verhalten der MDB in einem Server des Clusters. Deshalb wird nur ein einziger Server für die Verarbeitung von Nachrichten gestoppt. Je nachdem, welche Messaging-Konfiguration und welcher Ressourcenadapter verwendet wird, können die Nachrichten, die eigentlich vom angehaltenen Nachrichtenendpunkt hätten konsumiert werden sollen, entweder von den aktiven Nachrichtenendpunkten im Cluster konsumiert werden, oder sie werden erst dann konsumiert, wenn der angehaltene Nachrichtenendpunkt den Betrieb wieder aufnimmt.
  • Cluster-MDB ohne Clusterwarteschlange: In diesem Szenario haben Sie einen Cluster mit Servern, in denen jeweils dieselbe MDB implementiert ist. Dieses Szenario gleicht dem Szenario, in dem Sie unterschiedliche MDBs mit denselben Nachrichtenauswahlkriterien haben, abgesehen davon, dass die MDBs in diesem Szenario logisch dieselbe MDB sind. Das Anhalten eines Endpunkts bewirkt, dass nur ein einziger Server für den Empfang von Nachrichten gestoppt wird. Die anderen MDBs empfangen weiterhin alle Nachrichten. Keine Nachricht verwaist. Wenn Sie alle Endpunkte stoppen möchten, müssen Sie jeden Server im Cluster anweisen, den logischen Nachrichtenendpunkt zu stoppen.
  • Cluster-MDB mit Clusterwarteschlange: In diesem Szenario extrahiert jede MDB Nachrichten aus einer anderen Partition der Warteschlange. Die Messaging-Verfahren über WebSphere MQ und den Service Integration Bus haben ähnliche, aber doch unterschiedliche Leistungseigenschaften. Wenn Sie WebSphere MQ verwenden und einen Endpunkt anhalten, können die anderen Instanzen der MDB keine Nachrichten mehr empfangen. Im Service Integration Bus werden Nachrichten eines angehaltenen Endpunkts an die anderen MDBs weitergeleitet.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_msgendpoint
Dateiname:tdat_msgendpoint.html