Fluxos

MQSeries Publicação/Assinatura utiliza fluxos principalmente como um meio de particionar o espaço de nomes de tópico. Conjuntos de tópicos relacionados podem ser agrupados em fluxos separados permitindo que controles de segurança diferentes sejam aplicados a fluxos diferentes e que a carga de trabalho de publicação do intermediário seja melhor balanceada.

No entanto, o WebSphere Business Integration Event Broker oferece controles mais flexíveis para atingir ambos esses comportamentos. Portanto, o conceito de um fluxo é suportado apenas para compatibilidade de aplicativos MQRFH.

Os controles de segurança do WebSphere Business Integration Event Broker permitem que a autorização seja aplicada a um nível de tópico individual. Além disso, a carga de trabalho de publicação do intermediário pode ser controlada mais facilmente com a criação de instâncias adicionais de fluxos de mensagens de publicação que podem servir as mesmas filas de entrada ou filas de entrada diferentes.

O WebSphere Business Integration Event Broker ainda permite que aplicativos cliente do MQRFH especifiquem um parâmetro de comando do MQPSStreamName em suas assinaturas e publicações.No entanto, uma nome de fluxo é utilizando apenas para modificar o tópico para preservar a característica de particionamento do MQSeries Publicação/Assinatura.

Quando o nome do fluxo associado a uma mensagem é definido para algo diferente de SYSTEM.BROKER.DEFAULT.STREAM, a mensagem é processada como se o tópico ou tópicos mencionados dentro da mensagem tivessem recebido como prefixo a cadeia "$SYS/STREAM/<streamname>/". Ou seja, uma assinatura de Topic1 que especifica um nome de fluxo de StreamX é processada como se a assinatura tivesse sido feita para o tópico "$SYS/STREAM/StreamX/Topic1".

Os aplicativos de publicação e assinatura do MQRFH2 ainda podem destinar tópicos relacionados ao fluxo, mesmo que eles próprios não tenham permissão para especificar um nome de fluxo nas mensagens que enviam para o intermediário WebSphere Business Integration Event Broker. Para fazer isto, eles devem colocar os prefixos apropriados nos tópicos.

Por exemplo, para assinar o tópico "IBM/Latest" publicado no fluxo STOCK.STREAM dentro da rede MQSeries Publicação/Assinatura, um assinante MQRFH2 deve especificar o tópico "$SYS/STREAM/STOCK.STREAM/IBM/Latest".

MQSeries Publicação/Assinatura permite que uma publicação relacionada a fluxos seja enviada apenas para um fila que possua o mesmo nome do fluxo. No entanto, WebSphere Business Integration Event Broker permite que clientes de publicação enviem suas publicações para qualquer fila de entrada em um fluxo de mensagens.

Aplicativos MQRFH que especificam explicitamente um parâmetro de nome de fluxo dentro de uma publicação podem enviá-lo para qualquer fila de publicação atendida pelo intermediário do WebSphere Business Integration Event Broker. A fila não precisa ter o mesmo nome do fluxo.

Saiba que a ordem na qual as publicações são recebidas pode ser diferente da esperada.

Cada nó de publicação possui uma propriedadeImplicit Stream Naming cujo valor padrão é true. Esta opção padrão resulta em um comportamento idêntico ao demonstrado peloMQSeries Publicação/Assinatura quando uma publicação MQRFH não conter um nome de fluxo explícito. Se esta propriedade tiver o valor false, e a publicação não conter um nome de fluxo explícito, SYSTEM.BROKER.DEFAULT.STREAM será assumido.

A próxima tabela sumariza as opções disponíveis para para ambos os aplicativos clientes MQRFH e MQRFH2 que publicam mensagens, para o fluxo padrão ou para um fluxoMQSeries Publicação/Assinatura específico. O nome do fluxo StreamX é utilizado para ilustrar as opções.

  Publicador do MQRFH   Publicador do MQRFH2  
  Fluxo Padrão FluxoX Fluxo Padrão FluxoX
Assinante do MQRFH S1,P1 S2,P2 S1,P3 S2,P4
Assinante do MQRFH2 S3,P1 S4,P2 S3,P3 S4,P4
         
         
         
Subscriber notes:
  • S1 O assinante assina sem um nome de fluxo ou com um nome de fluxo "SYSTEM.BROKER.DEFAULT.STREAM".
  • S2 O assinante assina com o nome do fluxo "StreamX".
  • S3 O assinante assina no tópico sem incluir "$SYS/STREAM/<streamname>/".
  • S4 O assinante assina no tópico prefixado com "$SYS/STREAM/StreamX/".
Publisher notes:
  • P1 O publicador publica em qualquer fila especificando o nome do fluxo "SYSTEM.BROKER.DEFAULT.STREAM". ou publica sem especificar um nome de fluxo ou qualquer fila com a propriedadeImplicit Stream Naming definida como false.
  • P2 O publicador publica em qualquer fila especificando o nome do fluxo "StreamX" ou publica sem especificar um nome de fluxo na fila "StreamX" com a propriedade Nomenclatura de Fluxo Implícito definida como verdadeira.
  • P3 O publicador publica em qualquer fila sem incluir o prefixo $SYS/STREAM/<Stream>/" no tópico.
  • P4 O publicador publica em qualquer fila e inclui o prefixo "$SYS/STREAM/StreamX/" no tópico.
Nota: O prefixo "$SYS/STREAM/<streamname>/" é removido de todos os tópicos em uma publicação MQRFH2 quando é entregue a um assinante MQRFH.