发布命令消息从发布程序发送到代理,或从代理发送到订户和到在指定主题上的发布信息。
将该消息发送至包含 Publication 节点的消息流的输入队列。必须有权限把消息放入到该队列,并在指定的主题上发布。
如果用户关于一些主题(而非全部)有权限,则仅发布那些主题;警告响应表明不发布哪些主题。
如果订户有任何匹配的预订,代理将把发布消息转发到在相应的 Register Subscriber 命令消息中定义的订户队列。
请参阅代理响应消息以获取当发送命令消息到代理时所需要的,以及当代理把发布内容转发到订户时所使用的消息描述符(MQMD)参数的详细信息。
除非预订的是本地发布内容,否则代理把发布消息转发到网络中有匹配预订的其他代理。
发布数据(如果有的话)包括在消息的主体中。该数据可在 MQRFH2 头的 NameValueData 字段内的 <mcd> 文件夹中进行描述。
必须指定该属性。
必须指定该属性,并且可选地能为所需任意多的主题重复它。
该属性不应当包含在发送到代理的发布消息中,但是那些消息被发送到任何相应的订户之前,将由代理自动添加到发布消息。<SubPoint> 属性的值是处理发布的 Publication 节点的预订点属性的值。
该代理要保留发布内容的副本。 如果未设置该选项,当代理已经把发布内容发送到所有其当前订户时,立刻删除发布内容。
(只能由代理设置。)该发布内容由代理保留。 代理设置该选项来通知订户该发布内容较早已出版,并已经被保留,假设预订已经用 InformIfRetained 选项注册。 设置该选项只用于响应注册订户或 请求更新命令消息。直接被发送到订户的保留发布内容没有该选项设置。
该选项告知代理该发布内容不应当被发送到其他代理。 注册在该代理的所有订户接收到该发布内容(如果它们有匹配的预订)。
该选项允许引用类型应用程序的较简单的处理,其中发布程序也是对同一主题的订户。 它让代理不将发布内容发送到发布程序的订户队列(即便有匹配预订)。发布程序的订户队列由其 QMgrName、QName 和 CorrelId(可选)组成,如下所述。
MQMD(不能为零)中的 CorrelId 是发布程序的订户队列的一部分,在应用程序中发布程序也是订户。
所有选项采取它们的缺省值。这与省略发布内容选项属性的效果相同 。 如果同时指定其他选项,则忽略 None。
如果属性被省略,则缺省是不设置发布选项。
YYYYMMDDHHMMSSTH
使用通用时间。 在被发送到订户之前,代理不检查该信息。
每次发布时,它应当增加 1。 但是,代理不检查这个,其仅仅发送该信息到订户。
如果在同一主题上的发布内容被发布到不同的相互连接的代理,确保该序列号(如果使用)是有意义的,是发布程序的责任。
如果省略该属性,缺省是消息描述符(MQMD)中的 ReplyToQMgr 名称。 如果结果名称为空,其缺省到代理的队列管理器的名称。
如果省略该属性,缺省是消息描述符(MQMD)中的ReplyToQ 名称,如果设置了 OtherSubsOnly 其不能为空。
此处有一些 Publish 命令的 NameValueData 示例。
<psc> <Command>Publish</Command> <Topic>Sport/Soccer/Event/MatchStarted</Topic> </psc>
<psc> <Command>Publish</Command> <PubOpt>RetainPub</PubOpt> <Topic>Sport/Soccer/State/LatestScore/Team1 Team2</Topic> </psc>