Ein Broker verwirft eine Veröffentlichung standardmäßig nach dem Senden dieser Veröffentlichung an sämtliche interessierte Subskribenten. Ein Publisher kann jedoch angeben, dass im Broker eine Kopie der Veröffentlichung verbleiben soll. Diese Kopie wird als ständige Veröffentlichung bezeichnet.
Eine Kopie einer ständigen Veröffentlichung wird vom Broker an alle Subskribenten gesendet, die sich für das Thema der Veröffentlichung registriert haben. Dadurch muss ein neuer Subskribent nicht bis zur erneuten Veröffentlichung warten, um die gewünschten Informationen zu erhalten.
Beispielsweise erhält ein Subskribent, der sich für eine Subskription des Aktienkurses registriert, sofort den aktuellsten veröffentlichten Aktienkurs und muss nicht warten, bis dieser erneut veröffentlicht wird.
Wenn in der Veröffentlichungsnachricht die Veröffentlichungsoption RetainPub angegeben wurde, wird die Veröffentlichung vom Broker als ständige Veröffentlichung gespeichert und ersetzt alle zuvor gespeicherten ständigen Veröffentlichungen zu diesem Thema.
Da im Broker nur eine ständige Veröffentlichung zu jedem Thema und Subskriptionspunkt gespeichert wird, werden alte Veröffentlichungen beim Speichern neuer Veröffentlichungen gelöscht.
Wenn Sie daran denken, ständige
Veröffentlichungen zu verwenden, beachten Sie die folgenden Fragen:
- Sind in Ihren Veröffentlichungen Statusinformationen oder Ereignisdaten enthalten?
Im Gegensatz zu Ereignisdaten werden für Statusinformationen normalerweise ständige Veröffentlichungen gespeichert. Wenn jedoch alle Subskriptionen zu einem Thema vor den Veröffentlichungen zu diesem Thema stattfinden und keine neuen Subskriptionen erwartet werden, besteht kein Bedarf an ständigen Veröffentlichungen und Statusinformationen, da die Veröffentlichungen sofort an alle Subskribenten gesendet werden.
Veröffentlichungen, die Statusinformationen enthalten, müssen auch dann nicht als
ständige Veröffentlichungen gespeichert werden, wenn sie häufig (z. B. jede Sekunde) erfolgen. Bei dieser Häufigkeit von Veröffentlichungen erhält jeder neue Subskribent (oder ein Subskribent, der nach einem Fehler wiederhergestellt wird) den aktuellen Status beinahe direkt nach der Subskription.
- Möchten Sie Veröffentlichungen nur auf Anforderung empfangen?
Bei der Verwendung von ständigen Veröffentlichungen können Subskribenten in der Nachricht zur Registrierung als Subskribent die Option PubOnReqOnly angeben. Dadurch sendet der Broker Veröffentlichungen nur dann an einen Subskribenten, wenn dieser eine Aktualisierung anfordert. Der Broker sendet dem Subskribenten anschließend die aktuelle ständige Veröffentlichung, die mit dieser Subskription übereinstimmt.
- Können ständige Veröffentlichungen mit einmaligen Veröffentlichungen zum selben Thema kombiniert werden?
Dies wird nicht empfohlen. Wenn eine ständige Veröffentlichung vorhanden ist und anschließend eine einmalige Veröffentlichung zu dem gleichen Thema bereitgestellt wird, bleibt die vorhandene ständige Veröffentlichung trotzdem bestehen. Sie wird durch die einmalige Veröffentlichung nicht aktualisiert. Wenn ein Subskribent in der Nachricht zum Anmelden als Subskribent die Option PubOnReqOnly angibt, erhält er keine der einmaligen Veröffentlichungen. Bei der Anforderung einer Aktualisierung sendet der Broker nur die aktuelle ständige Veröffentlichung.
- Können von mehreren Anwendungen ständige Veröffentlichungen zu dem gleichen Thema vorgenommen werden?
Es wird nicht empfohlen, dass mehrere Anwendungen ständige Veröffentlichungen zu dem gleichen Thema vornehmen. Falls dies doch geschieht und Veröffentlichungen nahezu simultan
erfolgen, ist ungewiss, welche Veröffentlichung als ständige Veröffentlichung gespeichert wird. Wenn die Publisher verschiedene Broker verwenden, ist auf jedem Broker möglicherweise eine andere ständige Veröffentlichung für dasselbe Thema gespeichert.
- Wie wird die Subskribentenanwendung nach einer Störung wiederhergestellt?
Wenn der Publisher keine ständigen Veröffentlichungen verwendet, muss die Subskribentenanwendung möglicherweise ihren aktuellen Status lokal speichern. Verwendet der Publisher ständige Veröffentlichungen, kann der Subskribent eine Aktualisierung anfordern, um
die Statusinformationen nach einem Neustart auf den neuesten Stand zu bringen.
Der Broker sendet auch dann weiter Veröffentlichungen an einen registrierten Subskribenten, wenn dieser nicht aktiv ist. Dies kann dazu führen, dass sich
Nachrichten in der Warteschlange des Subskribenten stauen. Ein solcher Stau kann dadurch vermieden werden, dass der Subskribent in der Nachricht zum Anmelden als Subskribent die Option PubOnReqOnly angibt. Der Subskribent muss die Statusinformationen dann
regelmäßig aktualisieren, indem er entweder eine Aktualisierung anfordert oder eine temporäre dynamische Warteschlange verwendet.
- Wie wirken sich ständige Veröffentlichungen auf die Leistung aus?
Der Broker muss ständige Veröffentlichungen in einer Datenbank speichern. Dies verringert den Durchsatz. Wenn die Veröffentlichungen sehr umfangreich sind, wird viel Plattenspeicherplatz benötigt, um die ständigen Veröffentlichungen für die einzelnen Themen zu speichern. In einer
Multibroker-Umgebung werden ständige Veröffentlichungen von allen anderen verbundenen Brokern, denen eine entsprechende Subskription vorliegt, gespeichert.
Geben Sie im Feld Expiry des Nachrichtendeskriptors (MQMD) ein Verfallsdatum für eine ständige Veröffentlichung an.
Die Beispielanwendungen, die mit WebSphere Message Broker geliefert werden, enthalten den Service 'Soccer Results'. In diesem Beispielprogramm werden ständige Veröffentlichungen verwendet, um die aktuellen Spielstände der überwachten Fußballspiele zu erfassen. Der Mustercode zeigt die Programmierung, die erforderlich ist, um diese Option zu unterstützen.
Nicht alle Anwendungen können ständige
Veröffentlichungen bereitstellen, und nicht für alle ständigen Veröffentlichungen kann ein Verfallsdatum festgelegt werden. Die folgende Tabelle zeigt, welche Anwendungen ständige Veröffentlichungen bereitstellen können und ob die ständigen Veröffentlichungen ein Verfallsdatum haben können:
|
MQ |
SCADA |
JMS/IP |
Ständige Veröffentlichung |
JA |
JA |
NEIN |
Verfallsdatum |
JA |
NEIN |
NEIN |
Die Spalten in der Tabelle verweisen auf drei Anwendungstypen. Die erste Zeile gibt an, ob eine Veröffentlichung als ständige Veröffentlichung gespeichert werden kann, und die zweite Zeile gibt an, ob für die Veröffentlichung ein Verfallsdatum festgelegt werden kann.