Stufen und Abläufe der WebSphere MQ Telemetry Transport-Servicequalität

WebSphere MQ Telemetry Transport stellt Nachrichten gemäß den in der Servicequalität (Quality of Service, QoS) definierten Stufen zu. Diese Stufen werden nachfolgend beschrieben:

QoS-Stufe 0 "At most once"
Die Nachricht wird entsprechend den Möglichkeiten des zu Grunde liegenden TCP/IP-Netzes zugestellt. Eine Antwort wird nicht erwartet, und es ist keine Wiederholungssemantik im Protokoll definiert. Die Nachricht wird dem Broker entweder einmal oder gar nicht zugestellt.

Die nachfolgende Tabelle zeigt die Protokollübertragung für QoS-Stufe 0.

Client Nachricht und Richtung Broker
QoS = 0

PUBLISH
---------->

Aktion: Nachricht für Subskribenten veröffentlichen
QoS-Stufe 1 "At least once"
Der Empfang einer Nachricht durch den Broker wird durch eine PUBACK-Nachricht bestätigt. Bei einem Fehler bei der Kommunikationsverbindung oder dem sendenden Gerät oder wenn die Bestätigungsnachricht nicht innerhalb einer festgelegten Zeitdauer empfangen, sendet der Absender die Nachricht erneut mit dem im Nachrichtenheader festgelegten DUP-Bit. Die Nachricht wird dem Broker mindestens einmal zugestellt. Die Nachrichten SUBSCRIBE und UNSUBSCRIBE verwenden QoS-Stufe 1.

Bei einer Nachricht mit QoS-Stufe 1 befindet sich eine Nachrichten-ID im Nachrichtenheader.

Die nachfolgende Tabelle zeigt die Protokollübertragung für QoS-Stufe 1.

Client Nachricht und Richtung Broker

QoS = 1
DUP = 0
Nachrichten-ID = x

PUBLISH
---------->

Aktionen:
  • Nachricht in der Datenbank speichern
  • Nachricht für Subskribenten veröffentlichen
Aktion: Nachricht verwerfen

PUBACK
<----------

 

Wenn der Client keine PUBACK-Nachricht empfängt (entweder innerhalb einer in der Anwendung festgelegten Zeitdauer oder wenn ein Fehler festgestellt und die Kommunikationssitzung neu gestartet wird), sendet der Client die PUBLISH-Nachricht erneut, mit gesetztem DUP-Argument.

Wenn der Broker eine Nachricht doppelt vom Client empfängt, veröffentlicht er sie den Subskribenten erneut und versendet eine andere PUBACK-Nachricht.

QoS-Stufe 2 "Exactly once"
Zusätzliche Protokollabläufe über QoS-Stufe 1 sorgen dafür, dass keine doppelten Nachrichten an die empfangende Anwendung gesendet werden. Dies ist die höchste Zustellungsstufe, wenn doppelte Nachrichten nicht angenommen werden. Der Datenaustausch im Netz nimmt zwar zu, aber dies ist angesichts der Wichtigkeit des Nachrichteninhalts akzeptabel.

Bei einer Nachricht mit QoS-Stufe 2 befindet sich eine Nachrichten-ID im Nachrichtenheader.

Die nachfolgende Tabelle zeigt die Protokollübertragung für QoS-Stufe 2.

Client Nachricht und Richtung Broker

QoS = 2
DUP = 0
Nachrichten-ID = x

PUBLISH
---------->

Aktion: Nachricht in Datenbank speichern
 

PUBREC
<----------

Nachrichten-ID = x
Nachrichten-ID = x

PUBREL
---------->

Aktionen:
  • Datenbank aktualisieren
  • Nachricht für Subskribenten veröffentlichen
Aktion: Nachricht verwerfen

PUBCOMP
<----------

Nachrichten-ID = x

Wenn ein Fehler festgestellt wird oder eine definierte Zeitdauer abgelaufen ist, wird jeder Teil der Protokollübertragung mit festgelegtem DUP-Bit wiederholt. Die zusätzlichen Protokollübertragungen stellen sicher, dass die Nachricht dem Subskribenten nur einmal zugestellt wird.

Die QoS-Stufen 1 und 2 definieren, dass Nachrichten zugestellt werden müssen, daher speichert der Broker die Nachrichten in einer Datenbank. Probleme beim Zugriff des Brokers auf diese Daten haben möglicherweise den Verlust von Nachrichten zur Folge. Weitere Informationen hierzu sowie zu den Aktionen, die derlei Probleme minimieren, finden Sie unter Telemetrieanwendungen entwerfen.

Annahmen für die QoS-Stufen 1 und 2

In jedem Netzwerk besteht die Gefahr, dass bei Geräten oder Kommunikationsverbindungen Fehler auftreten. In einer derartigen Situation ist auf der einen Seite unter Umständen nicht bekannt, was auf der anderen Seite geschieht. Man spricht in diesem Fall von einem unbestätigten Status. In einer derartigen Situation beruht das Wissen über die Zuverlässigkeit der Zustellung von Nachrichten Geräte und Netze auf Annahmen.

WebSphere MQ Telemetry Transport geht davon aus, dass der Client und der Broker generell zuverlässig sind und dass eher der Kommunikationskanal unzuverlässig ist. Schlägt der Client fehl, handelt es sich dabei in der Regel um einen schwerwiegenden Fehler, nicht um einen vorübergehenden. Die Wahrscheinlichkeit, die Gerätedaten wiederherstellen zu können, ist gering. Einige Geräte besitzen einen nicht flüchtigen Speicher, beispielsweise Flash-ROM. Die Bereitstellung von permanentem Speicher im Clientgerät schützt die sensibelsten Daten vor einigen Ausfallrisiken.

Gehen die Ausfälle der Kommunikationsverbindung über das Grundmaß hinaus, wird die Ausfallmodusmatrix koplex, was zu mehr Szenarien führt als die Spezifikation für WebSphere MQ Telemetry Transport bewältigen kann.

Die Zeitverzögerung vor dem erneuten Senden (Wiederholungsintervall) einer unbestätigten Nachricht, ist anwendungsabhängig und wird nicht von der Protokollspezifikation festgelegt.

Zugehörige Konzepte
WebSphere MQ Telemetry Transport
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac10850_