Mensaje de Broker Response

Desde un intermediario se envía un mensaje de Broker Response a la opción ReplyToQ de un publicador o un suscriptor para indicar si el mensaje de mandato recibido por el intermediario se ha ejecutado correctamente o ha sufrido alguna anomalía, si el descriptor del mensaje de mandato ha especificado que es necesaria una respuesta.

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

En caso de que haya un aviso o se produzca un 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. En caso de que se produzca un error, no se habrá procesado ninguno de los mensajes que generaron el error; en caso de que haya un aviso, es posible que algunos de los mensajes se hayan procesado correctamente.

Si se produce alguna anomalía al enviar una respuesta:
  • Para los mensajes de publicación, el intermediario intenta enviar la respuesta a la cola de mensajes no entregados de WebSphere MQ si MQPUT no se ejecuta correctamente. Esto permite enviar la publicación a los suscriptores aunque no pueda volver a enviarse la respuesta al publicador.
  • Para otros mensajes, o en caso de que la respuesta de publicación no pueda enviarse a la cola de mensajes no entregados, se registra un error y, normalmente, el mensaje de mandato se restituye. La posibilidad de que esto ocurra dependerá de cómo se haya configurado el nodo MQInput.

Propiedades

<Terminación> (MQPSCR_COMPLETION)
Código de terminación que puede tomar uno de los tres valores siguientes:
ok
Mandato que se ha completado satisfactoriamente
warning
Mandato completado pero con un aviso
error
Mandato que no se ha ejecutado correctamente
<Respuesta> (MQPSCR_RESPONSE)
Respuesta a un mensaje de mandato, si dicho mandato ha generado un código de terminación de warning o error. Contiene una propiedad <Razón> y puede contener otras propiedades que indiquen la causa del aviso o del error.

En caso de que se produzcan uno o varios errores, sólo hay una carpeta de respuestas que indica únicamente la causa del primer error . En caso de que se produzcan uno o varios avisos, hay una carpeta de respuestas para cada aviso.

<Razón> (MQPSCR_REASON)
Código de razón que limita el código de terminación, si el código de terminación es warning o error. Se establece en uno de los códigos de error enumerados a continuación. La propiedad <Razón> se encuentra en una carpeta <Response>. 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 el aviso.

Ejemplos

A continuación figuran algunos ejemplos de NameValueData en un mensaje de Broker Response. Una respuesta correcta puede ser la siguiente:
 <pscr>
   <Completion>ok</Completion>
 </pscr>
A continuación figura un ejemplo de respuesta de anomalía; la anomalía es un error de filtro. La primera serie de caracteres NameValueData contiene la respuesta; la segunda contiene el mandato original.
 <pscr>
   <Completion>error</Completion>
   <Response>
     <Reason>3150</Reason>
   </Response>
 </pscr>
 
 <psc>
  ...
  command message (to which
  the broker is responding)
  ...
 </psc>
A continuación figura un ejemplo de una 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>
   </Response>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic2</Topic>
   </Response>
 </pscr>
 
 <psc>
  ...
  command message (to which
  the broker is responding)
  ...
 </psc>

Códigos de razón

Los códigos de razón siguientes pueden devolverse en el campo Reason de una carpeta <pscr> de respuestas de publicación/suscripción. También se proporcionan las constantes que pueden utilizarse para representar estos códigos en los lenguajes de programación C o C++. Las constantes MQRC_ requieren el archivo de cabecera cmqc.h de WebSphere MQ. Las constantes MQRCCF_ requieren el archivo de cabecera cmqcfc.h de WebSphere MQ (aparte de MQRCCF_FILTER_ERROR y MQRCCF_WRONG_USER, que requieren el archivo de cabecera WebSphere Business Integration Event Broker BipRfc.h).

Código de razón y texto Explicación Emitido por
2336

MQRC_RFH_COMMAND_ERROR

Los valores válidos para el campo <Command> de una carpeta <psc> son: RegSub, DeregSub, Publish, DeletePub y ReqUpdate. Cualquier otro valor hace que se emita este código de error. Cualquier mandato
2337

MQRC_RFH_ PARM_ERROR

Las carpetas <psc> y <mcd> tienen un conjunto de parámetros válidos que pueden especificarse dentro de ellas. Compruebe las descripciones de estas carpetas y asegúrese de que no ha especificado parámetros incorrectos. Cualquier mandato
2338

MQRC_RFH_DUPLICATE_PARM

Algunos parámetros (por ejemplo, Topic) de una carpeta <psc> pueden repetirse, pero otros (por ejemplo, Command) no pueden repetirse. Compruebe que no haya duplicado un parámetro no repetible. Cualquier mandato
2339

MQRC_RFH_PARM_MISSING

Algunos parámetros de las carpetas <psc> o <mcd> son opcionales y pueden omitirse; algunos son obligatorios y no deben omitirse. Compruebe que haya incluido todos los parámetros obligatorios en las carpetas <psc> y <mcd>. Cualquier mandato
3008

MQRCCF_COMMAND_FAILED

Se ha producido un error interno que ha impedido que el mandato se ejecute correctamente. El error puede producirse si vuelve a emitirse el mandato. El registro de sucesos del sistema para el intermediario contiene información que debe utilizarse al informar del problema a IBM. Cualquier mandato
3072

MQRCCF_TOPIC_ERROR

Uno o varios de los valores especificados para el parámetro Topic son incorrectos. Compruebe que los valores para Topic cumplen con las restricciones especificadas. Cualquier mandato
3073

MQRCCF_NOT_REGISTERED

La combinación de SubPoint, Topic y Filter especificada en el mandato DeregSub o ReqUpdate no era una combinación con la que se había registrado anteriormente o, para el mandato DeregSub si la opción DeregAll se ha especificado, una de las propiedades SubPoint, Topic o Filter no se ha utilizado para anular el registro de ninguna suscripción. Mandatos Deregister Subscriber y Request Update
3074

MQRCCF_Q_MGR_NAME_ERROR

El gestor de colas especificado no era válido, no estaba disponible o no existía. Mandatos Deregister Subscriber, Publish, Register Subscriber y Request Update
3076

MQRCCF_Q_NAME_ERROR

El nombre de cola especificado no era válido, o la cola no existía en el gestor de colas especificado. Mandatos Deregister Subscriber, Publish, Register Subscriber y Request Update
3077

MQRCCF_NO_RETAINED_MSG

No había mensajes retenidos para el tema especificado. Esto puede o no ser un error, en función del diseño del programa de aplicación. Mandato Request Update
3079

MQRCCF_INCORRECT_Q

Los mandatos RegSub, DeregSub y ReqUpdate siempre se envían a la cola SYSTEM.BROKER.CONTROL.QUEUE del intermediario para el que están concebidos. Los mandatos Publish y Delete Publication se envían a la cola de entrada del flujo de mensajes de publicación/suscripción específico para el que están concebidos; esto se determina al diseñar el flujo de mensajes. Este código de error se devuelve si se envía un mandato a la cola equivocada. Cualquier mandato
3080

MQRCCF_CORREL_ID_ERROR

Ha especificado CorrelAsId como uno de los parámetros RegOpt. No obstante, el campo CorrelId del MQMD no contiene un identificador de correlación válido (es decir, está establecido en MQCI_NONE). Mandatos Deregister Subscriber y Register Subscriber
3081

MQRCCF_NOT_AUTHORIZED

No está autorizado a realizar la acción solicitada. Los valores de autorización del intermediario los maneja el administrador del sistema utilizando el editor de jerarquía de temas. Mandatos Publish y Register Subscriber
3083

MQRCCF_REG_OPTIONS_ERROR

Ha especificado un parámetro RegOpt no reconocido en la carpeta <psc> que contiene el mandato DeregSub. Mandatos Deregister Subscriber y Register Subscriber
3084

MQRCCF_PUB_OPTIONS_ERROR

Ha especificado un parámetro PubOpt no reconocido en la carpeta <psc> que contiene el mandato Publish. Mandato Publish
3087

MQRCCF_DEL_OPTIONS_ERROR

Ha especificado un parámetro DelOpt no reconocido en la carpeta <psc> que contiene el mandato DeletePub. Mandato Delete Publication
3150

MQRCCF_FILTER_ERROR

El valor especificado para el parámetro Filter no es válido. Compruebe la sección que describe la sintaxis válida de las expresiones de filtro y asegúrese de que su expresión sea correcta. Mandatos Deregister Subscriber, Register Subscriber y Request Update
3151

MQRCCF_WRONG_USER

Ya existe una suscripción que coincide con la suscripción especificada; sin embargo, la ha registrado otro usuario. El usuario que registra originalmente una suscripción es la única persona que puede cambiarla o anular el registro de la misma. Mandatos Deregister Subscriber, Register Subscriber y Request Update
3152

MQRCCF_DUPLICATE_SUBSCRIPTION

Ya existe una suscripción coincidente con un nombre de suscripción distinto.  
3153

MQRCCF_SUB_NAME_ERROR

O el formato del nombre de suscripción no es válido o ya existe una suscripción coincidente sin un nombre de suscripción.  
3154

MQRCCF_SUB_IDENTITY_ERROR

El parámetro de identidad de la suscripción contiene un error. O el valor especificado sobrepasa la longitud máxima permitida o la identidad de suscripción no es actualmente un miembro del conjunto de identidades de la suscripción y no se ha especificado una opción de registro de unión.  
3155

MQRCCF_SUBSCRIPTION_IN_USE

Un miembro del conjunto de identidades ha intentado modificar una suscripción o anular el registro de la misma cuando no era el único miembro del conjunto.  
3156

MQRCCF_SUBSCRIPTION_LOCKED

La suscripción está bloqueada de forma exclusiva actualmente por otra propiedad.  
3157

MQRCCF_ALREADY_JOINED

Se ha especificado una opción de registro de unión, pero la identidad del suscriptor ya era un miembro del conjunto de identidades de la suscripción.