把请求更新命令消息从订户发送到代理,来请求指定的主题和与给出的(可选)过滤器匹配的预订点的当前保留发布内容。
将消息发送至 SYSTEM.BROKER.CONTROL.QUEUE(代理的控制队列)。除了请求更新中对主题的访问权限外,还必需具有可将消息放置该队列的权限,这由代理的系统管理员设置。
如果订户在注册时指定 PubOnReqOnly 选项,通常使用该命令。如果代理有任何匹配的保留发布内容,它们被发送到订户。如果代理没有匹配的保留发布内容,则请求失败,返回码为 MQRCCF_NO_RETAINED_MSG。该请求者必须先注册具有相同 Topic、SubPoint 和 Filter 值的预订。
该属性必须被指定,但是在该消息中只允许发生一次。
如果省略该属性,则使用缺省的预订点。
<Filter> 属性应当与您正在请求更新的原始预订上所指定的值相同。
如果省略该属性,则不发生内容过滤。
消息描述符(MQMD)(不能为零)中的 CorrelId 在发送匹配发布内容到订户队列时使用。
所有选项采取它们的缺省值。这与省略 <RegOpt> 属性的效果相同。如果同时指定其他选项,则忽略 None。
当指定订户(队列、队列管理器和 correlid)的身份时,不限定于单个用户标识。这不同于以下两种情况:代理的现有工作情况将原始注册消息的用户标识与预订的标识相关联;从此阻止使用该标识的任何其他用户。如果新订户尝试使用同一身份,则命令失败,返回码为 MQRCCF_DUPLICATE_SUBSCRIPTION。
这允许任何用户修改或注销预订(当它们有适当的权限时)。 因此,不需要检查用户标识是否与原始订户相匹配。
要添加该选项到现有的预订,命令必须来自与原始预订相同的用户标识。
如果 Request Update 命令的预订有 VariableUserId 集,这必须设置在请求更新时间以表明引用哪些预订。 否则,Request Update 命令的用户标识被用于标识预订。 如果提供了预订名称,这连同其他订户标识,会被覆盖。
如果属性被省略,缺省是不设置注册选项。
如果省略该属性,缺省是消息描述符(MQMD)中的 ReplyToQMgr 名称。 如果生成的名称为空,则它缺省为代理的 QMgrName。
如果省略该属性,则缺省为消息描述符(MQMD)中的 ReplyToQ 名称,这种情况下,该名称不能为空。
如果设置 VariableUserId,并且用户标识不同于来自预订的用户标识,如果新命令消息有权限浏览流队列并放入到预订的订户队列,命令成功。否则,命令失败,返回码为 MQRCCF_NOT_AUTHORIZED。
如果预订与该命令的传统标识相匹配,但没有指定 SubName,则 Request Update 命令失败,返回码为 MQRCCF_SUB_NAME_ERROR。
如果进行了尝试,使用与传统身份相匹配的命令消息对有 SubName 的预订请求更新,但是没有指定 SubName,该命令成功。