Fluxos

Um fluxo é um método de particionamento de tópico utilizado por aplicativos do WebSphere MQ Publicação/Assinatura. Conjuntos de tópicos relacionados são agrupados em fluxos separados.

Através da utilização de fluxos, diferentes controles de segurança podem ser aplicados a diferentes grupos de tópicos, e a carga de trabalho de publicação do intermediário pode ser melhor equilibrada.

Embora o WebSphere Message Broker forneça outras maneiras para que um aplicativo para atingir ambos comportamentos, o conceito de fluxos é suportado para compatibilidade com aplicativos MQRFH.

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

Se o nome de um fluxo associado a uma mensagem não for SYSTEM.BROKER.DEFAULT.STREAM, a mensagem será processada como se o tópico ou os tópicos mencionados dentro da mensagem tivessem recebido o prefixo com a cadeia "$SYS/STREAM/<nome_do_fluxo>/". Por exemplo, 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".

Aplicativos de publicação e assinatura MQRFH2 também podem ter como destino tópicos relacionados a fluxo, embora eles próprios não possam especificar um nome de fluxo nas mensagens enviadas para o intermediário WebSphere Message Broker. Para fazer isto, eles devem colocar os prefixos apropriados nos tópicos.

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

WebSphere MQ Publicação/Assinatura permite que uma publicação relacionada a fluxo seja enviada apenas para uma fila que possui o mesmo nome do fluxo. No entanto, WebSphere Message 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 um parâmetro de nome de fluxo explicitamente dentro de uma publicação podem enviá-la para qualquer publicação atendida pelo intermediário WebSphere Message Broker. O nome da fila não precisa ser igual ao nome do fluxo. Entretanto, esse comportamento pode afetar a ordem em que as publicações são recebidas. Veja se isso é importante para seus aplicativos.

Cada nó de publicação possui uma propriedade Implicit Stream Naming que utiliza true como padrão. Esta opção padrão resulta em um comportamento idêntico ao demonstrado peloWebSphere MQ Publicação/Assinatura quando uma publicação MQRFH não conter um nome de fluxo explícito. Se esta propriedade for false, e a publicação não conter nenhum nome de fluxo explícito, SYSTEM.BROKER.DEFAULT.STREAM será assumido.

As opções disponíveis para os aplicativos cliente MQRFH e MQRFH2 que publicam mensagens são mostrados na tabela a seguir; a tabela mostra as opções para o fluxo padrão é um nome de fluxo de exemplo de StreamX.

  publicador MQRFH publicador 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

Notas sobre o Assinante

S1
O assinante assina sem um nome de fluxo ou com o nome de fluxo "SYSTEM.BROKER.DEFAULT.STREAM".
S2
O assinante assina com o nome de fluxo "StreamX".
S3
O assinante assina o tópico sem incluir "$SYS/STREAM/<nome_do_fluxo>/".
S4
O assinante assina o tópico de prefixo com "$SYS/STREAM/StreamX/".

Notas do Publicador

P1
O publicador publica em qualquer fila especificando o nome do fluxo "SYSTEM.BROKER.DEFAULT.STREAM" ou publica sem especificar um nome de fluxo em qualquer fila com a propriedade Nomenclatura Implícita de Fluxo definida como falso.
P2
O publicador publica em qualquer fila especificando o nome de fluxo "StreamX" ou publica sem especificar um nome de fluxo na fila "StreamX" com a propriedade Nomenclatura de Implícita de Fluxo definida como verdadeiro.
P3
O publicador publica qualquer fila sem incluir o prefixo "$SYS/STREAM/<Fluxo>/" 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/<nome_do_fluxo>/" é removido de todos os tópicos em uma publicação MQRFH2 quando é entregue a um assinante MQRFH.

Fluxos e Intermediários Vizinhos

Em uma rede do WebSphere MQ Publicação/Assinatura um intermediário não precisa suportar o mesmo conjunto de fluxos de seus vizinhos. Se um intermediário não suportar um fluxo que seja suportado por um dos intermediários vizinhos, as publicações associadas a esse fluxo não estarão disponíveis aos clientes nesse intermediário.

Quando um intermediário WebSphere Message Broker unir a rede, ela suporta todos os fluxos de seus intermediários vizinhos do WebSphere MQ Publicação/Assinatura. Isto significa que clientes do intermediário WebSphere Message Broker podem atingir publicações para qualquer fluxo que seja suportado por seus vizinhos do WebSphere MQ Publicação/Assinatura.

No entanto, para tornar essas publicações disponíveis, você deve definir as filas de fluxo, e definir e implementar os fluxos de mensagens que as suportam, no intermediário WebSphere Message Broker.

Os efeitos de incluir um intermediário do WebSphere Message Broker em um ambiente multi-fluxo do WebSphere MQ Publicação/Assinatura são ilustrados na seguinte figura. O intermediário WebSphere Message Broker, NEWBROKER, foi utilizado para unir os intermediários do WebSphere MQ Publicação/Assinatura, BROKERA e BROKERB.

Uma Rede Heterogênea


Uma rede heterogênea.Esta figura mostra um intermediário <ph conref='edvent.dita#edvent/mqsi'></ph> colocado entre dois intermediários <ph conref='edvent.dita#edvent/sdk'></ph> BROKERA e BROKERB. Também lista os fluxos associados a cada um dos dois intermediários <ph conref='edvent.dita#edvent/sdk'></ph>.

O fila de fluxo padrão SYSTEM.BROKER.DEFAULT.STREAM sempre é suportado por todos os intermediários em uma rede do WebSphere MQ Publicação/Assinatura, e deve ser definida em todos os intermediários do WebSphere Message Broker em uma rede heterogênea. Em cada intermediário, é preciso definir e implementar um fluxo de mensagens para servir a essa fila.

Quando um intermediário do WebSphere Message Broker for integrado em uma rede do WebSphere MQ Publicação/Assinatura, e ligar dois ou mais intermediários do WebSphere MQ Publicação/Assinatura que compartilham fluxos comuns, será necessário definir as filas de fluxo comuns, além de definir e implementar os fluxos de mensagem que os atendem, para o intermediário do WebSphere Message Broker.

Por exemplo, o intermediário NEWBROKER do WebSphere Message Broker deve possuir uma fila de fluxo definida para BULLETIN.STREAM. Ele também deve ter um fluxo de mensagens definido e implementado para fornecer um serviço de publicação para essa fila.

Será necessário definir filas de fluxo e fluxos de mensagem associado para o intermediário do WebSphere Message Broker para outros fluxos mostrados na figura, apenas se um de seus vizinhos do WebSphere MQ Publicação/Assinatura conseguir enviar uma mensagem para uma dessas filas. Uma mensagem é enviada se um dos seguintes eventos ocorrer:
  1. Uma assinatura para uma publicação em um destes fluxos for registrada por um cliente do intermediário WebSphere Message Broker.
  2. Um comando DeletePublication para o fluxo é emitido por um cliente em qualquer lugar dentro da rede do intermediário.
Caso não tenha certeza se os casos acima irão ocorrer, crie filas de fluxo e fluxos de mensagem no intermediários do WebSphere Message Broker para cada fluxo suportado por um vizinho do WebSphere MQ Publicação/Assinatura. Se isso não for feito, pode acontecer o seguinte:
  • Mensagens enviadas de intermediários do WebSphere MQ Publicação/Assinatura são colocadas na DLQ (dead-letter queue) do intermediário doWebSphere Message Broker caso a fila de fluxo não exista nesse intermediário.
  • As mensagens serão geradas nas filas de fluxo do intermediário WebSphere Message Broker se a fila de fluxo existir, mas nenhum fluxo de mensagens for implementado para atendê-la.

Fluxos e Migração

Quando um intermediário do WebSphere MQ Publicação/Assinatura for migrado para um intermediário do WebSphere Message Broker (utilizando o comandomigmqbrk), os fluxos suportados no momento da migração serão replicados exatamente como no intermediário WebSphere Message Broker. Nenhuma alteração pode ser feita posteriormente; ou seja, nenhum fluxo pode ser adicionado a esse conjunto replicado ou removido dele. A migração não está concluída até que você tenha criado e implementado os fluxos de mensagens que processam todos esses fluxos.

Tarefas relacionadas
Assinando
Referências relacionadas
Cabeçalho do MQRFH2
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
aq01180_