Fluxos e Intermediários Vizinhos

Em uma rede , um intermediário poderá não suportar o mesmo conjunto de fluxos que 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 é adicionado à rede, ele suporta todos os fluxos suportados pelos intermediários vizinhos. Isto significa que clientes do intermediário podem atingir publicações para qualquer fluxo que seja suportado por seus vizinhos do .

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 .

Os efeitos de incluir um intermediário em um ambiente de vários fluxos são mostrados no seguinte exemplo:

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 intermediário , NEWBROKER, foi utilizado para unir os intermediários do , BROKERA e BROKERB.

A fila de fluxo padrão SYSTEM.BROKER.DEFAULT.STREAM é sempre suportada por todos os intermediários em uma rede e deve ser definida para cada intermediário em uma rede heterogênea.Em cada intermediário, também é preciso definir e implementar um fluxo de mensagens para servir essa fila.

Quando um intermediário é integrado a uma rede e faz link entre dois ou mais intermediários do que compartilham fluxos comuns, você deve definir as filas de fluxo comum e definir e implementar os fluxos de mensagens que as atendem, para o intermediário .

Por exemplo, o intermediário NEWBROKER mostrado na figura anterior deve ter 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.

Você precisa definir filas de fluxo e fluxos de mensagens associados ao intermediário para os outros fluxos mostrados na figura, somente se um de seus vizinhos puder 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 .
  2. Um comando DeletePublication para o fluxo é emitido por um cliente em qualquer lugar dentro da rede do intermediário.
Se você não tiver certeza que os casos acima podem ocorrer, crie filas de fluxo e fluxos de mensagens no intermediário para todo fluxo que é suportado por um vizinho. Se isto não for feito, poderão ocorrer os seguintes resultados:
  • As mensagens enviadas dos intermediários serão colocadas na DLQ (Dead-Letter Queue) do intermediário se a fila de fluxo não existir nesse intermediário.
  • As mensagens serão geradas nas filas de fluxo do intermediário se a fila de fluxo existir, mas nenhum fluxo de mensagens for implementado para atendê-la.