Die Befehlsnachricht 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 SYSTEM.BROKER.CONTROL.QUEUE gesendet, die Steuerwarteschlange des Brokers. 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.
Wird diese Eigenschaft ausgelassen, wird der Standardsubskriptionspunkt übernommen.
Für die Eigenschaft <Filter> sollte derselbe Wert wie in der ursprünglichen Subskription angegeben werden, für die jetzt eine Aktualisierung angefordert wird.
Wird diese Eigenschaft ausgelassen, wird kein inhaltsspezifischer Filter verwendet.
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 werden die Standardwerte übernommen. Der Effekt ist derselbe wie das Auslassen der Eigenschaft <RegOpt>. Werden zusätzlich noch andere Optionen angegeben, wird None ignoriert.
Wird diese Eigenschaft angegeben, ist die Identität des Subskribenten (Warteschlange, Warteschlangenmanager und Korrelations-ID) nicht auf eine einzige Benutzer-ID beschränkt. Dies unterscheidet sich vom bisherigen Verhalten des Brokers, bei dem die Benutzer-ID in der ursprünglichen Anmeldenachricht der Identität des Subskribenten zugeordnet wird und damit verhindert, dass andere Benutzer diese Identität verwenden. Wenn ein neuer Subskribent versucht, dieselbe Identität zu verwenden, schlägt der Befehl mit dem Rückkehrcode MQRCCF_DUPLICATE_SUBSCRIPTION fehl.
Diese Eigenschaft ermöglicht es allen Benutzern mit der entsprechenden Berechtigung, die Subskription zu ändern oder abzumelden. 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 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 Subskription über die Benutzer-ID des Befehls Aktualisieren identifiziert. Diese sowie alle anderen Subskribenten-IDs werden überschrieben, wenn der Subskriptionsname angegeben wird.
Wird diese Eigenschaft ausgelassen, werden standardmäßig keine Anmeldeoptionen gesetzt.
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 (QMgrName) übernommen.
Wird diese Eigenschaft ausgelassen, wird standardmäßig der Name ReplyToQ im Nachrichtendeskriptor (MQMD) übernommen, der in diesem Fall nicht leer sein darf.
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 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>