Befehlsnachricht zum Anfordern einer Aktualisierung

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.

Eigenschaften

<Command> (MQPSC_COMMAND)
Der Wert ist ReqUpdate (MQPSC_REQUEST_UPDATE). Diese Eigenschaft muss angegeben werden.
<Topic> (MQPSC_TOPIC)
Der Wert gibt das Thema an, das der Subskribent anfordert; es können Platzhalterzeichen verwendet werden.

Diese Eigenschaft muss angegeben werden, sie kann aber nur einmal in der Nachricht vorkommen.

<SubPoint> (MQPSC_SUBSCRIPTION_POINT)
Bei diesem Wert handelt es sich um den Subskriptionspunkt, an den die Subskription angehängt wird.

Wenn diese Eigenschaft nicht angegeben wird, wird der standardmäßige Subskriptionspunkt verwendet.

<Filter> (MQPSC_FILTER)
Bei diesem Wert handelt es sich um einen ESQL-Ausdruck, der als Filter für die Inhalte von Veröffentlichungsnachrichten verwendet wird. Eine Veröffentlichung wird an den Subskribenten gesendet, wenn das angegebene Thema mit dem Filter übereinstimmt.

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.

<RegOpt> (MQPSC_REGISTRATION_OPTION)
Für diese Eigenschaft (Anmeldeoptionen) kann einer der folgenden Werte angegeben werden:
CorrelAsId  
(MQPSC_CORREL_ID_AS_IDENTITY)

Die CorrelId im Nachrichtendeskriptor (MQMD) (die nicht Null sein darf) wird verwendet, wenn übereinstimmende Veröffentlichungen an die Subskribentenwarteschlange gesendet werden.

None  
(MQPSC_NONE)

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.

VariableUserId  
(MQPSC_VARIABLE_USER_ID)

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.

<QMgrName> (MQPSC_Q_MGR_NAME)
Der Wert ist der Name des Warteschlangenmanagers der Subskribentenwarteschlange, an die die entsprechende ständige Veröffentlichung vom Broker gesendet wird.

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.

<QName> (MQPSC_Q_NAME)
Der Wert ist der Name der Subskribentenwarteschlange, an die die betreffende ständige Veröffentlichung vom Broker gesendet wird.

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.

<SubName> (MQPSC_SUBSCRIPTION_NAME)
Dies ist ein Name einer bestimmten Subskription. Wird SubName im Befehl Anforderung aktualisieren angegeben, hat diese Angabe Vorrang vor allen anderen Kennungsfeldern (ausgenommen 'userid'), es sei denn, in der Subskription selbst wurde VariableUserId gesetzt. Ist VariableUserId nicht gesetzt, kann der Befehl Anforderung aktualisieren nur dann erfolgreich ausgeführt werden, wenn die Benutzer-ID der Befehlsnachricht mit der der Subskription übereinstimmt. Ist dies nicht der Fall, schlägt der Befehl mit dem Rückkehrcode MQRCCF_DUPLICATE_IDENTITY fehl.

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.

Beispiel

Hier finden Sie ein Beispiel für NameValueData für die Befehlsnachricht Anforderung aktualisieren. In der Beispielanwendung fordert der Ergebnisdienst mit dieser Befehlsnachricht eine ständige Veröffentlichung an, die die letzten Spielstände aller Mannschaften enthält. Für die Identität des Subskribenten, einschließlich des Werts CorrelId, werden die Standardeinstellungen aus dem MQMD übernommen.
<psc>
<Command>ReqUpdate</Command>
<RegOpt>CorrelAsId</RegOpt>
<Topic>Sport/Soccer/State/LatestScore/#</Topic>
</psc>
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 18.05.2006
aq07000_