Die Befehlsnachricht Veröffentlichen wird von einem Publisher an einen Broker oder von einem Broker an einen Subskribenten gesendet, damit Informationen zu einem angegebenen Thema/zu angegebenen Themen veröffentlicht werden.
Diese Nachricht wird an die Eingabewarteschlange eines Nachrichtenflusses gesendet, der einen Veröffentlichungsknoten enthält. Dazu ist die Berechtigung notwendig, Nachrichten in diese Warteschlange zu stellen und Nachrichten zu dem angegebenen Thema/den angegebenen Themen zu veröffentlichen.
Wenn der Benutzer nur für einen Teil der Themen berechtigt ist, wird auch nur dieser Teil veröffentlicht; in einer Warnung werden die Themen aufgeführt, die nicht veröffentlicht wurden.
Liegen für einen Subskribenten übereinstimmende Subskriptionen vor, leitet der Broker die Publish-Nachricht an die Subskribentenwarteschlangen weiter, die in den Befehlsnachrichten Subskribent anmelden definiert sind.
Ausführliche Informationen zu den Parametern des Nachrichtendeskriptors (MQMD), die zum Senden von Befehlsnachrichten an den Broker notwendig sind und die verwendet werden, wenn der Broker eine Veröffentlichung an einen Subskribenten sendet, finden Sie unter Nachricht mit Brokerantwort.
Der Broker leitet die Publish-Nachricht an die anderen Broker im Netz weiter, in denen übereinstimmende Subskriptionen vorliegen, sofern es sich nicht um eine lokale Veröffentlichung handelt.
Eventuell vorhandene Veröffentlichungsdaten werden in den eigentlichen Nachrichtentext übernommen. Die Daten können in einem <mcd>-Ordner im Feld NameValueData des MQRFH2-Headers beschrieben werden.
Diese Eigenschaft muss angegeben werden.
Diese Eigenschaft muss angegeben werden, und sie kann optional so oft vorkommen, wie Themen vorhanden sind.
Diese Eigenschaft sollte nicht in einer Veröffentlichung enthalten sein, die an einen Broker gesendet wird; sie wird aber vom Broker automatisch in alle Veröffentlichungen eingesetzt, bevor diese an einen Subskribenten gesendet werden. Der Wert der Eigenschaft <SubPoint> entspricht dem Wert des Attributs 'Subskriptionspunkt' des Veröffentlichungsknotens, der die Veröffentlichung handhabt.
Der Broker soll eine Kopie der Veröffentlichung behalten. Wird diese Option nicht gesetzt, wird die Veröffentlichung gelöscht, sobald sie vom Broker an alle aktuellen Subskribenten gesendet wurde.
(Kann nur von einem Broker gesetzt werden.) Diese Veröffentlichung wird vom Broker beibehalten. Der Broker setzt diese Option, um dem Subskribenten anzuzeigen, dass diese Nachricht gesendet und eine Kopie gespeichert wurde; dies geschieht allerdings nur, wenn die Subskription unter Angabe der Option InformIfRetained angemeldet wurde. Sie wird nur auf die Befehlsnachricht Subskribent anmelden oder Aktualisieren hin gesetzt. Für ständige Veröffentlichungen, die direkt an Subskribenten gesendet werden, muss diese Option nicht gesetzt werden.
Diese Option meldet dem Broker, dass die Veröffentlichung nicht an andere Broker gesendet werden soll. Diese Veröffentlichung geht an alle in diesem Broker angemeldeten Subskribenten, sofern eine entsprechende Subskription vorliegt.
Diese Option ermöglicht eine einfachere Verarbeitung von Konferenzanwendungen, bei denen ein Publisher für ein Thema gleichzeitig auch ein Subskribent für das Thema ist. Diese Option teilt dem Broker mit, dass die Veröffentlichung nicht an die Subskribentenwarteschlange des Publishers gesendet werden soll, selbst wenn eine entsprechende Subskription vorliegt. Die Subskribentenwarteschlange des Publishers besteht aus QMgrName, QName und (optional) CorrelId, wie unten beschrieben.
Die CorrelId im MQMD (die nicht gleich Null sein darf) ist in Anwendungen, bei denen der Publisher gleichzeitig auch Subskribent ist, Teil der Warteschlange des Publishers.
Für alle Optionen werden die Standardwerte übernommen. Der Effekt ist derselbe wie das Auslassen der Eigenschaft PubOpt. Werden zusätzlich noch andere Optionen angegeben, wird None ignoriert.
Wird diese Eigenschaft ausgelassen, werden standardmäßig keine Veröffentlichungsoptionen gesetzt.
JJJJMMTTHHMMSSTH
Die Zeit wird in UT (Universal Time) angegeben. Diese Information wird nicht vom Broker überprüft, bevor sie an die Subskribenten geht.
Sie sollte mit jeder weiteren Veröffentlichung um 1 erhöht werden. Allerdings wird dies nicht vom Broker überprüft, er übermittelt diese Information lediglich an die Subskribenten.
Wenn Veröffentlichungen zu ein und demselben Thema an verschiedene miteinander verbundene Broker gehen, muss der Publisher sicherstellen, dass die Folgenummern korrekt sind, sofern sie verwendet werden.
Wird diese Eigenschaft ausgelassen, wird als Standardwert der Name ReplyToQMgr im Nachrichtendeskriptor (MQMD) übernommen. Ist dieser Name leer, wird standardmäßig der Name des Warteschlangenmanagers des Brokers übernommen.
Wird diese Eigenschaft ausgelassen, wird als Standardwert der Name ReplyToQ im Nachrichtendeskriptor (MQMD) übernommen, der nicht leer sein darf, wenn OtherSubsOnly gesetzt wurde.
Hier einige Beispiele für NameValueData für eine Publish-Befehlsnachricht.
<psc> <Command>Publish</Command> <Topic>Sport/Soccer/Event/MatchStarted</Topic> </psc>
<psc> <Command>Publish</Command> <PubOpt>RetainPub</PubOpt> <Topic>Sport/Soccer/State/LatestScore/Team1 Team2</Topic> </psc>