Die Befehlsnachricht Anforderung aktualisieren wird von einem Subskribenten an einen Broker gesendet, um die aktuellen ständigen Veröffentlichungen zu dem angegebenen Thema sowie den Subskriptionspunkt anzufordern, die mit den gegebenen (optionalen) Filterkriterien übereinstimmen.
Diese Nachricht wird an die Steuerwarteschlange des Brokers (SYSTEM.BROKER.CONTROL.QUEUE) gesendet. Dazu muss die Berechtigung vorliegen, Nachrichten in diese Warteschlangen zu stellen, außerdem eine Zugriffsberechtigung auf das in der Aktualisierungsanforderung angegebene Thema; diese wird vom Systemadministrator des Brokers gesetzt.
Dieser Befehl wird normalerweise verwendet, wenn ein Subskribent beim Anmelden die Option PubOnReqOnly gesetzt hat. Liegen im Broker übereinstimmende ständige Veröffentlichungen vor, werden sie an den Subskribenten gesendet. Liegen keine entsprechenden ständigen Übereinstimmungen im Broker vor, schlägt die Anforderung mit dem Rückkehrcode MQRCCF_NO_RETAINED_MSG fehl. Der Subskribent muss zuvor eine Subskription mit demselben Thema, demselben Subskriptionspunkt und demselben Filter angemeldet haben.
Diese Eigenschaft muss angegeben werden, sie kann aber nur einmal in der Nachricht vorkommen.
Wenn diese Eigenschaft nicht angegeben wird, wird der standardmäßige Subskriptionspunkt verwendet.
Für die Eigenschaft <Filter> sollte derselbe Wert wie in der ursprünglichen Subskription angegeben werden, für die jetzt eine Aktualisierung angefordert wird.
Wenn diese Eigenschaft nicht angegeben wird, findet kein Filtern des Inhalts statt.
Die CorrelId im Nachrichtendeskriptor (MQMD) (die nicht Null sein darf) wird verwendet, wenn übereinstimmende Veröffentlichungen an die Subskribentenwarteschlange gesendet werden.
Für alle Optionen gelten die Standardwerte. Der Effekt ist derselbe wie das Auslassen der Eigenschaft <RegOpt>. Wenn gleichzeitig andere Optionen angegeben sind, wird die Option Keine ignoriert.
Wenn dieser Wert angegeben ist, wird die Identität des Subskribenten (Warteschlange, WS-Manager und Korrelations-ID) nicht auf eine einzige Benutzer-ID beschränkt. In diesem Punkt gibt es einen Unterschied zum bestehenden Verhalten des Brokers, der die Benutzer-ID der ursprünglichen Registrierungsnachricht der ID des Subskribenten zuordnet und dann verhindert, dass ein anderer Benutzer diese ID verwendet. Wenn ein neuer Subskribent versucht, dieselbe Identität zu verwenden, schlägt der Befehl mit dem Rückkehrcode MQRCCF_DUPLICATE_SUBSCRIPTION fehl.
Dies ermöglicht es allen Benutzern, die über die entsprechende Berechtigung verfügen, die Subskription zu ändern oder deren Registrierung zurückzunehmen. Daher muss nicht überprüft werden, ob die Benutzer-ID mit dem ursprünglichen Subskribenten identisch ist.
Um diese Option einer vorhandenen Subskription hinzuzufügen, muss der Befehl unter derselben Benutzer-ID gesendet werden, unter der die ursprüngliche Subskription eingerichtet wurde.
Wenn in der im Befehl Anforderung aktualisieren angegebenen Subskription die Option VariableUserId gesetzt ist, muss diese zu dem Zeitpunkt, an dem die Aktualisierung angefordert wird, so gesetzt werden, dass sie auf die entsprechende Subskription hinweist. Andernfalls wird die Benutzer-ID des Befehls Request Update dazu verwendet, die Subskription zu ermitteln. Diese ID wird zusammen mit den anderen Subskribenten-IDs überschrieben, wenn ein Subskriptionsname angegeben wird.
Wird diese Eigenschaft ausgelassen, wird die Standardeinstellung verwendet, nach der keine Registrierungsoptionen festgelegt werden.
Wird diese Eigenschaft nicht angegeben, wird standardmäßig der im Nachrichtendeskriptor (MQMD) angegebene Name ReplyToQMgr verwendet. Wenn der sich daraus ergebende Name leer ist, wird standardmäßig der Name des WS-Managers des Brokers verwendet.
Wird diese Eigenschaft nicht angegeben, wird standardmäßig der im Feld ReplyToQ des Nachrichtendeskriptors (MQMD) angegebene Name, der in diesem Fall nicht aus Leerzeichen bestehen darf, verwendet.
Ist die Option VariableUserId gesetzt, und ist die Benutzer-ID nicht dieselbe wie die in der Subskription, wird der Befehl erfolgreich ausgeführt, sofern die Benutzer-ID der neuen Befehlsnachricht über die Berechtigung verfügt, die Datenstromwarteschlange zu durchsuchen und Nachrichten in die Subskribentenwarteschlange der Subskription zu stellen. Andernfalls schlägt der Befehl mit dem Rückkehrcode MQRCCF_NOT_AUTHORIZED fehl.
Ist eine Subskription vorhanden, die der ursprünglichen ID dieses Befehls entspricht, für die aber kein SubName angegeben ist, dann schlägt der Befehl Anforderung aktualisieren mit dem Rückkehrcode MQRCCF_SUB_NAME_ERROR fehl.
Wird eine Aktualisierung für eine Subskription angefordert, für die ein SubName angegeben ist, und zwar mit einer Befehlsnachricht, die mit der ursprünglichen Identität übereinstimmt, für die aber SubName nicht angegeben wurde, wird der Befehl erfolgreich ausgeführt.
<psc> <Command>ReqUpdate</Command> <RegOpt>CorrelAsId</RegOpt> <Topic>Sport/Soccer/State/LatestScore/#</Topic> </psc>