Nachricht mit Brokerantwort

Eine Nachricht mit einer Brokerantwort) wird von einem Broker an die ReplyToQ eines Publishers oder Subskribenten gesendet, um diesem mitzuteilen, ob eine vom Broker empfangene Befehlsnachricht erfolgreich war oder nicht. Voraussetzung dafür ist, dass im Deskriptor der Befehlsnachricht angegeben war, dass eine Antwort angefordert wird.

Die Antwortnachricht befindet sich im Feld NameValueData des MQRFH2-Headers in einem <pscr>-Ordner.

Im Falle einer Warnung ist in der Antwortnachricht der Ordner <psc> aus der Befehlsnachricht sowie der Ordner <pscr> enthalten. Die Nachrichtendaten, falls vorhanden, sind nicht in der Antwortnachricht des Brokers enthalten. Im Falle eines Fehlers wurde keine der Nachrichten, die einen Fehler verursachten, verarbeitet; im Falle einer Warnung wurden möglicherweise einige Nachrichten erfolgreich verarbeitet.

Beim Senden einer Antwort tritt ein Fehler auf:
  • Bei Veröffentlichungsnachrichten versucht der Broker, die Antwort an die Warteschlange für nicht zustellbare Nachrichten von WebSphere MQ zu senden, wenn der MQPUT-Aufruf fehlschlägt. Auf diese Weise kann die Veröffentlichung auch dann an Subskribenten gesendet werden, wenn an den Publisher keine Antwort zurückgesendet werden kann.
  • Bei anderen Nachrichten oder wenn die Veröffentlichungsantwort nicht an die Warteschlange für nicht zustellbare Nachrichten gesendet werden kann, wird ein Fehler protokolliert und normalerweise eine ROLLBACK-Operation für die Nachricht durchgeführt. Ob dies geschieht, ist von der Konfiguration des MQEmpfangsknotens abhängig.

Eigenschaften

<Completion> (MQPSCR_COMPLETION)
Der Beendigungscode, für den einer der folgenden drei Werte zulässig ist:
ok
Befehl wurde erfolgreich ausgeführt
warning
Befehl wurde ausgeführt, aber mit einer Warnung
error
Befehl ist fehlgeschlagen
<Response> (MQPSCR_RESPONSE)
Dies ist die Antwort auf eine Befehlsnachricht, wenn der Befehl den Beendigungscode warning oder error lieferte. Sie enthält eine Eigenschaft <Reason> (Ursache) und kann weitere Eigenschaften enthalten, die auf die Ursache für die Warnung oder den Fehler hinweisen.

Wenn mehrere Fehler aufgetreten sind, gibt es einen einzigen Antwortordner, der nur die Ursache für den ersten Fehler angibt. Bei mehreren Warnungen gibt es für jede Warnung einen Antwortordner.

<Reason> (MQPSCR_REASON)
Dies ist der Ursachencode, der den Beendigungscode qualifiziert, wenn als Beendigungscode warning oder error zurückgegeben wird. Der Ursachencode entspricht einem der unten aufgelisteten Fehlercodes. Die Eigenschaft <Reason> ist in einem Ordner <Response> (Antwort) enthalten. Auf den Ursachencode kann jede gültige Eigenschaft aus dem Ordner <psc> folgen (z. B. ein Themenname), die auf die Ursache des Fehlers oder der Warnung hinweist.

Beispiele

Es folgen einige Beispiele für NameValueData in einer Nachricht mit einer Brokerantwort. Eine Antwort mit einer Erfolgsnachricht sieht etwa folgendermaßen aus:
 <pscr>
   <Completion>ok</Completion>
 </pscr>
Es folgt ein Beispiel für eine Antwort mit einer Fehlernachricht (ein Filterfehler ist aufgetreten). Die erste NameValueData-Zeichenfolge enthält die Antwort, die zweite enthält den ursprünglichen Befehl.
 <pscr>
   <Completion>error</Completion>
   <Response>
     <Reason>3150</Reason>
   </Reponse>
 </pscr>
 
 <psc>
  ...
  Befehlsnachricht (auf die der
  Broker antwortet)
  ...
 </psc>
Es folgt ein Beispiel für eine Antwort mit einer Warnung (wegen nicht berechtigter Themen). Die erste NameValueData-Zeichenfolge enthält die Antwort, die zweite enthält den ursprünglichen Befehl.
 <pscr>
   <Completion>warning</Completion>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic1</Topic>
   </Reponse>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic2</Topic>
   </Reponse>
 </pscr>
 
 <psc>
  ...
  Befehlsnachricht (auf die der
  Broker antwortet)
  ...
 </psc>
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
aq07010_