Nachrichten mit fernen Nachrichtenpunkten erzeugen und konsumieren
Wenn eine Anwendung Nachrichten für eine Messaging-Engine erzeugt oder konsumiert, diese Messaging-Engine aber nicht mit der Anwendung verbunden ist, werden ferne Nachrichtenpunkte verwendet, um den Nachrichtenfluss zwischen den Messaging-Engines zu verwalten.
Erzeugen von Nachrichten
Wenn eine Anwendung Nachrichten für ein Warteschlangenziel in einer Messaging-Engine erzeugt, die nicht die Messaging-Engine ist, die Eigner des Warteschlangenpunkts ist, muss ein ferner Warteschlangenpunkt verwendet werden, um die Zustellung der für den Warteschlangenpunkt bestimmten Nachrichten zu verwalten. Erzeugt eine Anwendung Nachrichten für ein Publish/Subscribe-Ziel, hat die Messaging-Engine der erzeugenden Anwendung einen lokalen Veröffentlichungspunkt. Wenn subskribierende Anwendungen für dasselbe Ziel mit anderen Messaging-Engines im Bus verbunden sind, sind ferne Veröffentlichungspunkte erforderlich, die die Zustellung der Nachrichten an diese fernen Messaging-Engines verwalten.
Bei einem vermittelten Ziel müssen die Nachrichten zuerst an einem Mediationspunkt verarbeitet werden. Wenn der Mediationspunkt in einer anderen Messaging-Engine enthalten ist als der, mit der die Anwendung verbunden ist, muss ein ferner Mediationspunkt verwendet werden, der die Zustellung der Nachrichten an den Mediationspunkt verwaltet.
Diese abgehenden Nachrichten müssen dem Nachrichtenpunkt entsprechend der für die Nachricht definierten Zuverlässigkeitsstufe zuverlässig zugestellt werden. Für die Unterstützung dieser Zuverlässigkeitsstufen werden alle Nachrichten mit einer höheren Zuverlässigkeit als "Bestmöglich, nicht persistent" am fernen Nachrichtenpunkt der Messaging-Engine des Erzeugers vorübergehend in eine Warteschlange eingereiht. Die Nachricht verbleiben so lange in dieser Warteschlange, bis die Messaging-Engine, die Eigner des Nachrichtenpunkts ist, den Eingang der Nachricht bestätigt. Anschließend entfernt die Messaging-Engine des Erzeugers ihre Kopie der Nachricht vom fernen Nachrichtenpunkt. Auf diese Weise kann beim Auftreten von Fehlern der Verlust von Nachrichten vermieden und die Nachrichtenreihenfolge bewahrt werden.
Im Normalfall verbleiben die Nachrichten nur kurz in der Warteschlange des fernen Nachrichtenpunkts. Sollte jedoch ein Fehler auftreten oder das System überlastet sein, können die Nachrichten auch länger dort verbleiben. Sie können die Vitalität des System überprüfen, indem Sie die abgehenden Nachrichten an einem fernen Nachrichtenpunkt überwachen.
Nachrichten konsumieren
Eine konsumierende Anwendung kann mit einer Messaging-Engine verbunden sein, die nicht Eigner des Nachrichtenspeichers ist, aus dem die Anwendung Nachrichten konsumiert. Wenn eine Anwendung Nachrichten von einem Warteschlangenziel konsumiert, kann die Anwendung eine für den Warteschlangenpunkt ferne Anwendung sein. Konsumiert eine Anwendung Nachrichten von einem Publish/Subscribe-Ziel, kann die Anwendung einer der Subskription ferne Anwendung sein. In beiden Fällen ist ein ferner Nachrichtenpunkt erforderlich, der die Nachrichtenanforderungen der Anwendung verwaltet.
Sobald eine Anwendung eine Nachricht von einem fernen Nachrichtenspeicher anfordert, wird eine Nachrichtenanforderung von der Messaging-Engine der Anwendung an die Messaging-Engine abgesetzt, die Eigner der Nachrichten ist. Diese Nachrichtenanforderungen werden vom fernen Nachrichtenpunkt so lange verwaltet, bis sie durch eine Nachricht beantwortet oder beendet werden (die anfordernde Anwendung beendet die Anforderung).