Mensaje de Publish

El mensaje de mandato de Publish se envía de un publicador a un intermediario, o de un intermediario a un suscriptor, para publicar información en un tema o unos temas concretos.

Este mensaje se envía a la cola de entrada de un flujo de mensajes que contiene un nodo Publication. Es necesario tener autorización para transferir un mensaje a esta cola y para publicar en el tema o los temas especificados.

Si el usuario tiene autorización sobre algunos de los temas, pero no todos ellos, sólo se publicarán dichos temas; una respuesta de aviso indica los temas que no se van a publicar.

Si un suscriptor tiene suscripciones coincidentes, el intermediario envía el mensaje de publicación a las colas de suscriptores definidas en los mensajes de mandatos de Register Subscriber correspondientes.

Consulte el apartado Mensaje de Broker Response para obtener información detallada acerca de los parámetros del descriptor de mensaje (MQMD), necesarios al enviar un mensaje de mandato al intermediario y utilizados cuando un intermediario envía una publicación a un suscriptor.

El intermediario envía el mensaje de publicación a otros intermediarios de la red que tienen suscripciones coincidentes, a menos que se trate de una publicación local.

Los datos de publicación, si existen, se incluyen en el texto del mensaje. Los datos pueden describirse en una carpeta <mcd>, en el campo NameValueData de la cabecera MQRFH2.

Propiedades

<Mandato> (MQPSC_COMMAND)
El valor es Publish (MQPSC_PUBLISH).

Esta propiedad debe especificarse.

<Tema> (MQPSC_TOPIC)
El valor es una serie de caracteres que contiene un tema que categoriza esta publicación. No se permiten los comodines.

Esta propiedad debe especificarse, y puede repetirse de manera opcional para tantos temas como sea necesario.

<SubPunto> (MQPSC_SUBSCRIPTION_POINT)
Punto de suscripción en el que se publica la publicación.

Esta propiedad no debe incluirse en un mensaje de publicación enviado al intermediario, pero éste la añade automáticamente a los mensajes de publicación antes de que estos mensajes se envíen a los suscriptores adecuados. El valor de la propiedad <SubPunto> es el valor del atributo de punto de suscripción del nodo Publication que maneja la publicación.

<OpcPub> (MQPSC_PUBLICATION_OPTION)
La propiedad de opciones de publicación puede tomar los valores siguientes:
RetainPub  
(MQPSC_RETAIN_PUB)

El intermediario debe retener una copia de la publicación. Si no se establece esta opción, la publicación se suprime en cuanto el intermediario envía la publicación a todos sus suscriptores actuales.

IsRetainedPub  
(MQPSC_IS_RETAINED_PUB)

(Sólo puede establecerla el intermediario.) Esta publicación la ha retenido el intermediario. El intermediario establece esta opción para notificar a un suscriptor que esta publicación se ha publicado anteriormente y se ha retenido, siempre que la suscripción se haya registrado con la opción InformIfRetained. Esta opción sólo se establece en respuesta a un mensaje de mandato de Register Subscriber o Request Update. Las publicaciones retenidas que se envían directamente a los suscriptores no tienen establecida esta opción.

Local  
(MQPSC_LOCAL)

Esta opción indica al intermediario que esta publicación no debe enviarse a otros intermediarios. Todos los suscriptores registrados en este intermediario reciben esta publicación si tienen suscripciones coincidentes.

OtherSubsOnly  
(MQPSC_OTHER_SUBS_ONLY)

Esta opción permite un proceso más sencillo de las aplicaciones de tipo conferencia, en las que un publicador es también un suscriptor del mismo tema. Esta opción indica al intermediario que no envíe la publicación a la cola de suscriptores del publicador aunque tenga una suscripción coincidente. La cola de suscriptores del publicador consta de QMgrName, QName y CorrelID opcional, como se describe a continuación.

CorrelAsId  
(MQPSC_CORREL_ID_AS_IDENTITY)

El CorrelID del MQMD (que no debe ser cero) forma parte de la cola de suscriptores del publicador en aplicaciones en las que el publicador es también un suscriptor.

None  
(MQPSC_NONE)

Todas las opciones toman los valores por omisión correspondientes. Esto tiene el mismo efecto que omitir la propiedad de opciones de publicación. Si se especifican otras opciones al mismo tiempo, se omite None.

Si se omite esta propiedad, el valor por omisión es que no se establezca ninguna opción de publicación.

<TiempoPub> (MQPSC_PUBLISH_TIMESTAMP)
El valor es una indicación de la hora de publicación opcional que establece el publicador. Tiene una longitud de 16 caracteres y el formato es:
YYYYMMDDHHMMSSTH

utilizando la hora universal. El intermediario no comprueba esta información antes de que se envíe a los suscriptores.

<NúmSec> (MQPSC_SEQUENCE_NUMBER)
El valor es un número de secuencia opcional establecido por el publicador.

Debe incrementarse en 1 con cada publicación. No obstante, el intermediario no comprueba esto, simplemente transmite esta información a los suscriptores.

Si las publicaciones basadas en un mismo tema se publican en distintos intermediarios interconectados, es responsabilidad de los publicadores garantizar que los números de secuencia, si se utilizan, tengan sentido.

<NombGstColas> (MQPSC_Q_MGR_NAME)
El valor es una serie de caracteres que contiene el nombre del gestor de colas para la cola de suscriptores del publicador, en aplicaciones en las que el publicador es también un suscriptor (consulte OtherSubsOnly).

Si se omite esta propiedad, el valor por omisión es el nombre del ReplyToQMgr del descriptor de mensaje (MQMD). Si el nombre resultante está en blanco, toma como valor por omisión el nombre del gestor de colas del intermediario.

<NombCola> (MQPSC_Q_NAME)
El valor es una serie de caracteres que contiene el nombre de la cola de suscriptores del publicador, en aplicaciones en las que el publicador es también un suscriptor (consulte OtherSubsOnly).

Si se omite esta propiedad, el valor por omisión es el nombre de la ColaRespuestas del descriptor de mensaje (MQMD), que no debe estar en blanco si se ha establecido OtherSubsOnly.

Ejemplo

A continuación figuran algunos ejemplos de NameValueData para un mensaje de mandato de publicación.

El primer ejemplo es para una publicación enviada por el simulador de coincidencias en la aplicación de ejemplo para indicar que se ha iniciado una coincidencia.
 <psc>
  <Command>Publish</Command>
  <Topic>Sport/Soccer/Event/MatchStarted</Topic>
 </psc>
El segundo ejemplo es para una publicación retenida. Se publica la última puntuación en la coincidencia entre Team1 y Team2.
 <psc>
  <Command>Publish</Command>
  <PubOpt>RetainPub</PubOpt>
  <Topic>Sport/Soccer/State/LatestScore/Team1 Team2</Topic>
 </psc>