Mensaje de respuesta de intermediario

Un mensaje de respuesta de intermediario se envía desde un intermediario a la ReplyToQ (cola de respuestas) de un publicador o suscriptor, para indicar si un mensaje de mandato recibido por el intermediario se ha ejecutado o no correctamente, si el descriptor del mensaje de mandato especificada que era necesaria una respuesta.

El mensaje de respuesta se encuentra dentro del campo NameValueData de la cabecera MQRFH2, en una carpeta <pscr>.

Si se trata de un mensaje de aviso o de error, el mensaje de respuesta contiene la carpeta <psc> del mensaje de mandato así como la carpeta <pscr>. Los datos del mensaje, si los hay, no están contenidos en el mensaje de respuesta del intermediario. Si se trata de un error, ninguno de los mensajes que haya causado el error se procesará; si se trata de un aviso, es posible que alguno de los mensajes se haya procesado correctamente.

Si se produce una anomalía al enviar una respuesta:
  • En los mensajes de publicación, el intermediario intenta enviar la respuesta a la cola de mensajes no entregados de WebSphere MQ si MQPUT falla. Esto permite enviar la publicación a suscriptores incluso si la respuesta no puede devolver al publicador.
  • Para otros mensajes o si la respuesta a la publicación no puede enviarse a la cola de mensajes no entregados, se anota un error y, normalmente, el mensaje se sustituye. El comportamiento depende de cómo se haya configurado el nodo MQInput.

Propiedades

<Completion> (MQPSCR_COMPLETION)
Es el código de terminación, que puede tener uno de estos tres valores.
ok
El mandato ha terminado correctamente
aviso
El mandato ha terminado pero con un error
error
El mandato no se ha ejecutado correctamente
<Response> (MQPSCR_RESPONSE)
La respuesta a un mensaje de mandato, si dicho mandato ha devuelto un código de terminación aviso o error. Contiene una propiedad <Reason> y puede contener otras propiedades que indiquen la causa del aviso o el error.

Si hay uno o más errores, habrá sólo una carpeta de respuesta que indicará únicamente la causa del primer error. En el caso de uno o más avisos, habrá una carpeta de respuesta para cada aviso.

<Reason> (MQPSCR_REASON)
Es el código de razón que califica al código de terminación, si el código de terminación es un aviso o error. Tiene uno de los códigos de error listados abajo. La propiedad <Reason> está contenida dentro de una carpeta <Respuesta>. El código de razón puede ir seguido de cualquier propiedad válida de la carpeta <psc> (por ejemplo, un nombre de tema), que indique la causa del error o aviso.

Ejemplos

A continuación puede ver algunos ejemplos de NameValueData en un mensaje de respuesta de intermediario. Una respuesta satisfactoria podría ser la siguiente:
 <pscr>
   <Completion>ok</Completion>
 </pscr>
Este es un ejemplo de respuesta de anomalía; la anomalía es un error de filtro. La primera serie de caracteres de NameValueData contiene la respuesta; la segunda contiene el mandato original.
 <pscr>
   <Completion>error</Completion>
   <Response>
     <Reason>3150</Reason>
   </Reponse>
 </pscr>
 
 <psc>
  ...
  mensaje de mandato (al que está
  respondiendo el intermediario)
  ...
 </psc>
Este es un ejemplo de respuesta de aviso (debida a temas no autorizados). La primera serie de caracteres NameValueData contiene la respuesta; la segunda serie de caracteres NameValueData contiene el mandato original.
 <pscr>
   <Completion>warning</Completion>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic1</Topic>
   </Reponse>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic2</Topic>
   </Reponse>
 </pscr>
 
 <psc>
  ...
  mensaje de mandato (al que está
  respondiendo el intermediario)
  ...
 </psc>
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
aq07010_