代理响应消息

代理响应消息被代理发往一个发布程序或订户的 ReplyToQ,表明若命令消息描述符指定需要响应时,被代理接受的命令消息的成功或失败。

在 MQRFH2 头部 NameValueData 域中包含响应消息,在一个 <pscr> 文件夹中。

假设发生警告或错误,从命令消息得到的响应消息包含了 <psc> 文件夹和 <pscr> 文件夹。消息数据并不包含于代理响应消息中。在发生错误的情况下,导致错误的消息不会被处理,在发生警告的情况下,某些消息可能会被成功地处理。

如果有一个发送响应时发生错误:
  • 若 MQPUT 失败,代理设法发送消息到 WebSphere MQ 死信队列。这允许将发布内容发送到发布程序,即使响应无法被回送到发布程序。
  • 若出版响应无法发送到死信队列,错误将被登记入日志,命令消息通常会回滚。这种情况是否发生取决于 MQInput 节点是怎样定义的。

属性

<Completion>MQPSCR_COMPLETION
完成码可取三个值之一:
确定
命令成功完成
警告
完成但有警告。
错误
命令失败
<Response>MQPSCR_RESPONSE
对命令消息的响应 发生在那条命令发出完成代码为 warningerror 时。它包含一个 <Reason> 属性,且可能包含其他表示警告或出错原因的属性。

在发生一个或多个错误的时候,只有一个响应文件夹表明第一个(也只有第一个)错误的原因。在发生一个或多个警告的时候,只有一个响应文件夹表明第一个(也只有第一个)警告的原因。

<Reason>MQPSCR_REASON
原因代码审核完成代码,若 warningerror。它被设置为以下所列错误代码之一。<Reason> 包含于一个 <Response> 文件夹。代码可以后跟任何在 <psc> 文件夹的有效属性 (例如,一个主题名)的原因是指示错误或警告产生的原因。

示例

此处有一些关于 NameValueData代理响应消息中的例子。成功的响应可能如下:
 <pscr>
   <Completion>ok</Completion>
 </pscr>
此处有一个失败响应的示例:过滤器错误。第一个 NameValueData 字符串包含了响应;第二个包含了原始命令。
 <pscr>
   <Completion>error</Completion>
   <Response>
     <Reason>3150</Reason>
   </Reponse>
 </pscr>
 
 <psc>
  ...
    (代理响应的)命令消息
...
 </psc>
此处有一个关于(由于未授权主题而产生)的警告响应。第一个 NameValueData 字符串包含了响应;第二个包含了原始命令。
 <pscr>
   <Completion>warning</Completion>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic1</Topic>
   </Reponse>
   <Response>
     <Reason>3081</Reason>
     <Topic>topic2</Topic>
   </Reponse>
 </pscr>
 
 <psc>
  ...
    (代理响应的)命令消息
...
 </psc>
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
aq07010_