Mensagem Broker Response

Um mensagem Broker Response é enviada de um intermediário à ReplyToQ de um publicador ou assinante para indicar o êxito ou falha de uma mensagem de comando recebida pelo intermediário se o descritor da mensagem de comando especificou que uma resposta é requerida.

A mensagem de resposta está contida no campo NameValueData do cabeçalho MQRFH2, em uma pasta <pscr>.

No caso de um aviso ou erro, a mensagem de resposta contém a pasta <psc> da mensagem de comando bem como a pasta <pscr>. Os dados da mensagem, se existirem, não estão contidos na mensagem broker response. No caso de um erro, nada da mensagem que causou o erro foi processado; no caso de um aviso, parte da mensagem pode ter sido processada com êxito.

Se houver uma falha ao enviar uma resposta:
  • Para mensagens de publicação, o intermediário tentará enviar a resposta à fila dead-letter do WebSphere MQ se o MQPUT falhar. Isso permite que a publicação seja enviada aos assinantes mesmo que a resposta não possa ser enviada de volta ao publicador.
  • Para outras mensagens, ou se a resposta da publicação não conseguir ser enviada à fila dead-letter, um erro será registrado e a mensagem de comando será retrocedida normalmente. Se isso acontece depende de como o nó MQInput tiver sido configurado.

Properties

<Completion> (MQPSCR_COMPLETION)
O código de conclusão, que pode ter um dos três valores:
ok
Comando concluído com êxito
warning
Comando concluído mas com aviso
error
Comando falhou
<Response> (MQPSCR_RESPONSE)
A resposta a uma mensagem de comando, se esse comando produziu um código de conclusão de warning ou error. Contém uma propriedade <Reason> e pode conter outras propriedades que indicam a causa do aviso ou erro.

No caso de um ou mais erros, somente há uma pasta response, indicando somente a causa do primeiro erro. No caso de um ou mais avisos, há uma pasta response para cada aviso.

<Reason> (MQPSCR_REASON)
O código de razão qualificando o código de conclusão, se este for um warning ou error. É definido para um dos códigos de erro listados a seguir. A propriedade <Reason> está contida em uma pasta <Response>. O código de razão pode ser seguido por qualquer propriedade válida da pasta <psc> (por exemplo, um nome de tópico), indicando a causa do erro ou aviso.

Exemplos

Eis alguns exemplos de NameValueData em uma mensagem Broker Response. Uma resposta com êxito poderia ser assim:
 <pscr>
   <Completion>ok</Completion>
 </pscr>
Eis um exemplo de uma resposta com falha; a falha é um erro de filtro. A primeira cadeia NameValueData contém a resposta; a segunda contém o comando original.
 <pscr>
   <Completion>error</Completion>
   <Response>
     <Reason>3150</Reason>
   </Reponse>
 </pscr>
 
 <psc>
  ...
    mensagem de comando (à qual
    o intermediário está respondendo)
  ...
 </psc>
Eis um exemplo de uma resposta de aviso (devido a tópicos não autorizados). A primeira cadeia NameValueData contém a resposta; a segunda cadeia NameValueData contém o comando original.
 <pscr>
   <Completion>warning</Completion>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic1</Topic>
   </Reponse>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic2</Topic>
   </Reponse>
 </pscr>
 
 <psc>
  ...
    mensagem de comando (à qual
    o intermediário está respondendo)
  ...
 </psc>

Códigos de razão

Os códigos de razão a seguir podem ser retornados no campo Reason da pasta <pscr> de uma resposta de Publicação/Assinatura. As constantes que podem ser utilizadas para representar esses códigos nas linguagens de programação C ou C++ também são fornecidas. As constantes MQRC_ exigem o arquivo de cabeçalho cmqc.h do WebSphere MQ. As constantes MQRCCF_ requerem o arquivo de cabeçalho do WebSphere MQ cmqcfc.h (exceto MQRCCF_FILTER_ERROR e do MQRCCF_WRONG_USER que requerem o arquivo de cabeçalho WebSphere Business Integration Event Broker BipRfc.h).

Código de Razão e Texto Explicação Emitido por
2336

MQRC_RFH_COMMAND_ERROR

Os valores válidos para o campo <Command> de uma pasta <psc> são: RegSub, DeregSub, Publish, DeletePub, e ReqUpdate. Qualquer outro valor resulta na emissão deste código de erro. Qualquer comando
2337

MQRC_RFH_ PARM_ERROR

As pastas <psc> e <mcd> têm ambas um conjunto de parâmetros válidos que podem ser especificados dentro delas. Verifique as descrições dessas pastas e certifique-se de não ter especificado parâmetros incorretos. Qualquer comando
2338

MQRC_RFH_DUPLICATE_PARM

Alguns parâmetros (por exemplo, Topic) em uma pasta <psc> podem ser repetidos, mas outros (por exemplo, Command) não podem ser repetidos. Verifique se você não duplicou um parâmetro que não pode ser repetido. Qualquer comando
2339

MQRC_RFH_PARM_MISSING

Alguns parâmetros em pastas <psc> ou <mcd> são opcionais e podem ser omitidos, alguns são obrigatórios e não devem ser omitidos. Verifique se você incluiu todos os parâmetros obrigatórios em suas pastas <psc> e <mcd>. Qualquer comando
3008

MQRCCF_COMMAND_FAILED

Ocorreu um erro interno que impediu o comando de executar corretamente. O erro pode ocorrer se o comando for emitido novamente. O log de eventos do sistema para o intermediário contém informações que devem ser utilizadas ao relatar o problema à IBM. Qualquer comando
3072

MQRCCF_TOPIC_ERROR

Um ou mais dos valores fornecidos para o parâmetro Topic estão incorretos. Verifique se seus valores para Topic respeitam as restrições especificadas. Qualquer comando
3073

MQRCCF_NOT_REGISTERED

A combinação de SubPoint, Topic e Filter especificada no comando DeregSub ou ReqUpdate não era uma combinação com a qual você registrou anteriormente ou, para o comando DeregSub se a opção DeregAll foi especificada, uma das propriedades SubPoint, Topic ou Filter não foi usada para cancelar o registro de alguma assinatura. Comandos Deregister Subscriber e Request Update
3074

MQRCCF_Q_MGR_NAME_ERROR

O gerenciador de filas especificado não era válido, não estava disponível ou não existe. Comandos Deregister Subscriber, Publish, Register Subscriber e Request Update
3076

MQRCCF_Q_NAME_ERROR

O nome da fila especificada não era válido ou a fila não existia no gerenciador de filas especificado. Comandos Deregister Subscriber, Publish, Register Subscriber e Request Update
3077

MQRCCF_NO_RETAINED_MSG

Não havia mensagens retidas para o tópico especificado. Isso pode ser um erro ou não, dependendo do projeto de seu programa aplicativo. Comando Request Update
3079

MQRCCF_INCORRECT_Q

Os comandos RegSub, DeregSub e ReqUpdate sempre são enviados à fila SYSTEM.BROKER.CONTROL.QUEUE do intermediário para o qual eram destinados. Os comandos Publish e Delete Publication são enviados à fila de entrada para o fluxo de mensagem Publicação/Assinatura específico ao qual eles eram destinados; isso é determinado quando o fluxo de mensagens é projetado. Este código de erro é retornado se um comando for enviado à fila errada. Qualquer comando
3080

MQRCCF_CORREL_ID_ERROR

Você especificou CorrelAsId como um de seus parâmetros RegOpt. Entretanto, o campo CorrelId do MQMD não contém um identificador de correlação válido (ou seja, está definido como MQCI_NONE). Comandos Deregister Subscriber e Register Subscriber
3081

MQRCCF_NOT_AUTHORIZED

Você não está autorizado a executar a ação pedida. As definições de autorização para o intermediário são manipuladas pelo administrador do sistema utilizando o editor de Hierarquia de Tópico. Comandos Publish e Register Subscriber
3083

MQRCCF_REG_OPTIONS_ERROR

Você especificou um parâmetro RegOpt não reconhecido na pasta <psc> que contém seu comando DeregSub. Comandos Deregister Subscriber e Register Subscriber
3084

MQRCCF_PUB_OPTIONS_ERROR

Você especificou um parâmetro PubOpt não reconhecido na pasta <psc> que contém seu comando Publish. Comando Publish
3087

MQRCCF_DEL_OPTIONS_ERROR

Você especificou um parâmetro DelOpt não reconhecido na pasta <psc> que contém seu comando DeletePub. Comando Delete Publication
3150

MQRCCF_FILTER_ERROR

O valor especificado para o parâmetro Filter não é válido. Verifique a seção que descreve a sintaxe válida para expressões de filtro e certifique-se de que sua expressão está de acordo. Comandos Deregister Subscriber, Register Subscriber e Request Update
3151

MQRCCF_WRONG_USER

Uma assinatura que corresponde à especificada já existe; entretanto, ela foi registrada por um usuário diferente. Uma assinatura somente pode ser alterada ou ter seu registro cancelado pelo usuário que a registrou originalmente. Comandos Deregister Subscriber, Register Subscriber e Request Update
3152

MQRCCF_DUPLICATE_SUBSCRIPTION

Já existe uma assinatura correspondente com um nome de assinatura diferente.  
3153

MQRCCF_SUB_NAME_ERROR

Ou o formato do nome da assinatura não é válido, ou já existe uma assinatura correspondente sem nome de assinatura.  
3154

MQRCCF_SUB_IDENTITY_ERROR

O parâmetro de identidade da assinatura está errado. Ou o valor fornecido excede o comprimento máximo permitido, ou a identidade da assinatura não é atualmente membro do conjunto de identidades da assinatura e uma opção Join registration não foi especificada.  
3155

MQRCCF_SUBSCRIPTION_IN_USE

Foi feita uma tentativa de modificar uma assinatura ou de cancelar seu registro por um membro do conjunto de identidades quando ele não era o único membro desse conjunto.  
3156

MQRCCF_SUBSCRIPTION_LOCKED

A assinatura está travada com exclusividade no momento por outra identidade.  
3157

MQRCCF_ALREADY_JOINED

Uma opção Join registration foi especificada mas a identidade do assinante já era um membro do conjunto de identidades da assinatura.