Mensagem de Publicação

A mensagem de comando Publish é enviada de um publicador para um intermediário, ou de um intermediário para um assinante, para publicar informações em um tópico ou tópicos especificados.

Essa mensagem é enviada à fila de entrada de um fluxo de mensagens que contém um nó Publication. É necessária autoridade para colocar uma mensagem nessa fila e para publicar no tópico ou tópicos especificados.

Se o usuário tiver autoridade em alguns mas não em todos os tópicos, somente esses tópicos serão publicados; uma resposta de aviso indicará quais tópicos não serão publicados.

Se um assinante tiver alguma assinatura correspondente, o intermediário encaminhará a mensagem Publish para as filas de assinante definidas nas mensagens de comando Registrar Assinante correspondentes.

Consulte Mensagem Broker Response para obter detalhes sobre os parâmetros do descritor de mensagem (MQMD) necessários ao enviar uma mensagem de comando ao intermediário, e utilizados quando um intermediário encaminha uma publicação a um assinante.

O intermediário encaminha a mensagem Publish a outros intermediários na rede que têm assinaturas correspondentes, a menos que se trate de uma publicação local.

Os dados da publicação, se existirem, são incluídos no corpo da mensagem. Os dados podem ser descritos em uma pasta <mcd> no campo NameValueData do cabeçalho MQRFH2.

Propriedades

<Comando> (MQPSC_COMMAND)
O valor é Publicação(MQPSC_PUBLISH).

Essa propriedade precisa ser especificada.

<Tópico> (MQPSC_TOPIC)
O valor é uma cadeia que contém um tópico que categoriza essa publicação. Nenhum caractere curinga é permitido.

Essa propriedade precisa ser especificada, e pode ser repetida opcionalmente para tantos tópicos quanto necessário.

<SubPoint> (MQPSC_SUBSCRIPTION_POINT)
O ponto de assinatura no qual a publicação é publicada.

Essa propriedade não deve ser incluída em uma mensagem de publicação enviada ao intermediário mas será incluída automaticamente a mensagens de publicação pelo intermediário antes que essas mensagens sejam enviadas a quaisquer assinantes apropriados. O valor da propriedade <SubPoint> é o valor do atributo Subscription Point do nó de Publicação que está manipulando a publicação.

<PubOpt> (MQPSC_PUBLICATION_OPTION)
A propriedade publication options pode ter os seguintes valores:
RetainPub  
(MQPSC_RETAIN_PUB)

O intermediário deve reter uma cópia da publicação. Se essa opção não for definida, a publicação será excluída assim que o intermediário a tiver enviado a todos os seus assinantes atuais.

IsRetainedPub  
(MQPSC_IS_RETAINED_PUB)

(Somente pode ser definida por um intermediário.) Esta publicação foi retida pelo intermediário. O intermediário define essa opção para notificar um assinante de que essa publicação foi publicada anteriormente e foi retida, desde que a assinatura tenha sido registrada com a opção InformIfRetained. Ela é definida somente em resposta a uma mensagem de comando Registrar Assinante ou Pedido de Atualização. Publicações retidas que são enviadas diretamente a assinantes não têm essa opção definida.

Local  
(MQPSC_LOCAL)

Esta opção instrui ao intermediário que essa publicação não deve ser enviada a outros intermediários. Todos os assinantes que se registraram neste intermediário receberão essa publicação se tiverem assinaturas correspondentes.

OtherSubsOnly  
(MQPSC_OTHER_SUBS_ONLY)

Esta opção permite um processamento mais simples de aplicativos tipo conferência, em que um publicador também é um assinante do mesmo tópico. Ela instrui ao intermediário para não enviar a publicação à fila de assinante do publicador mesmo que ele tenha uma assinatura correspondente. A fila do assinante do publicador consiste em seu QMgrName, QName, e CorrelId opcional, conforme descrito a seguir.

CorrelAsId  
(MQPSC_CORREL_ID_AS_IDENTITY)

O CorrelId no MQMD (que não pode ser zero) faz parte da fila de assinante do publicador em aplicativos nos quais o publicador também é um assinante.

Nenhum  
(MQPSC_NONE)

Todas as opções assumem seus valores padrão. Isso tem o mesmo efeito que omitir a propriedade publication options. Se outras opções forem especificadas ao mesmo tempo, Nenhuma será ignorada.

O padrão, se essa propriedade for omitida, é que nenhuma opção de publicação é definida.

<PubTime> (MQPSC_PUBLISH_TIMESTAMP)
O valor é a data e hora da publicação opcional, definida pelo publicador. Tem 16 caracteres de comprimento com o formato:
   AAAAMMDDHHMMSSMS

utilizando Hora Universal. Essas informações não são verificadas pelo intermediário antes de serem enviadas aos assinantes.

<SeqNum> (MQPSC_SEQUENCE_NUMBER)
O valor é um número de seqüência opcional definido pelo publicador.

Ele deve ser incrementado de 1 com cada publicação. Entretanto, isso não é verificado pelo intermediário, o qual simplesmente transmite essas informações aos assinantes.

Se forem publicadas publicações no mesmo tópico para intermediários deferentes interconectados, é responsabilidade dos publicadores assegurar que os números de seqüência, se utilizados, sejam significativos.

<QMgrName> (MQPSC_Q_MGR_NAME)
O valor é uma cadeia contendo o nome do gerenciador de filas para a fila de assinante do publicador em aplicativos nos quais o publicador também é um assinante (consulte OtherSubsOnly).

Se essa propriedade for omitida, o padrão é o nome de ReplyToQMgr no descritor da mensagem (MQMD). Se o nome resultante estiver em branco, ele assumirá o padrão do nome do gerenciador de filas do intermediário.

<QName> (MQPSC_Q_NAME)
O valor é uma cadeia contendo o nome da fila de assinantes do publicador, em aplicativos nos quais o publicador também seja um assinante (consulte OtherSubsOnly).

Se essa propriedade for omitida, o padrão é o nome de ReplyToQ no descritor da mensagem (MQMD), o qual não pode estar em branco se OtherSubsOnly estiver definido.

Exemplo

Alguns exemplos de NameValueData para uma mensagem de comando Publish.

O primeiro exemplo é para uma publicação enviada pelo simulador de jogo no aplicativo de amostra para indicar que um jogo foi iniciado.
 <psc>
  <Command>Publish</Command>
    <Topic>Sport/Soccer/Event/MatchStarted</Topic>
 </psc>
O segundo exemplo é para uma publicação retida. O último placar no jogo entre Team1 e Team2 é publicado.
 <psc>
  <Command>Publish</Command>
  <PubOpt>RetainPub</PubOpt>
  <Topic>Sport/Soccer/State/LatestScore/Team1 Team2</Topic>
 </psc>
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
aq06980_