Un flusso è un metodo di partizionamento dell'argomento utilizzato dalle applicazioni di WebSphere MQ Pubblicazione/Sottoscrizione. Delle serie di argomenti correlati sono raggruppate insieme in flussi separati.
Mediante l'uso di flussi, è possibile applicare diversi controlli di sicurezza a gruppi di argomenti diversi e il carico di lavoro di pubblicazione del broker può essere bilanciato meglio.
Sebbene WebSphere Message Broker fornisca ad un'applicazione altre modalità per effettuare tali operazioni, il concetto di flussi è supportato per la compatibilità con le applicazioni MQRFH.
WebSphere Message Broker consente alle applicazioni client MQRFH di specificare un parametro di comando MQPSStreamName nelle relative sottoscrizioni e pubblicazioni. Tuttavia, il nome del flusso viene utilizzato solo per modificare l'argomento per conservare le caratteristiche di partizionamento di WebSphere MQ Pubblicazione/Sottoscrizione.
Se il nome di un flusso associato ad un messaggio non è SYSTEM.BROKER.DEFAULT.STREAM, il messaggio viene elaborato come se all'argomento o agli argomenti menzionati nell'ambito del messaggio sia stato inserito un prefisso corrispondente alla stringa "$SYS/STREAM/<streamname>/". Ad esempio, una sottoscrizione a Topic1 che specifica un nome di flusso StreamX viene elaborata come se la sottoscrizione è stata effettuata all'argomento "$SYS/STREAM/StreamX/Topic1".
Le applicazioni di pubblicazione e sottoscrizione MQRFH2 possono inoltre avere come destinazione argomenti correlati al flusso, anche se non possono specificare un nome di flusso nei messaggi che inviano al broker WebSphere Message Broker. A tal fine, devono inserire come prefisso degli argomenti il prefisso di flusso appropriato.
Ad esempio, un sottoscrittore (subscriber) MQRFH2 deve specificare l'argomento "$SYS/STREAM/STOCK.STREAM/IBM/Latest" per sottoscrivere l'argomento "IBM/Latest" pubblicato sul flusso STOCK.STREAM nell'ambito della rete di WebSphere MQ Pubblicazione/Sottoscrizione.
WebSphere MQ Pubblicazione/Sottoscrizione consente ad una pubblicazione correlata al flusso di essere inviata solo ad una coda che ha lo stesso nome del flusso. Tuttavia, WebSphere Message Broker consente ai client di pubblicazione di inviare le relative pubblicazioni ad una qualsiasi coda di input in un flusso di messaggi. Le applicazioni MQRFH che scelgono esplicitamente di specificare un parametro del nome di flusso nell'ambito di una pubblicazione possono eseguirne l'invio ad una qualsiasi coda di pubblicazione servita dal broker WebSphere Message Broker. Il nome della coda non deve essere lo stesso nome del flusso. Tuttavia, tale comportamento potrebbe influire sull'ordine di ricezione delle pubblicazioni. Considerare la rilevanza di ciò in relazione all'applicazione in uso.
Ciascun nodo Publication ha una proprietà Denominazione implicita di flusso il cui valore predefinito è true. Questa opzione predefinita fa sì che il comportamento sia identico a quello in WebSphere MQ Pubblicazione/Sottoscrizione quando una pubblicazione MQRFH non contiene un nome di flusso esplicito. Se questa proprietà è false e la pubblicazione non contiene alcun nome di flusso esplicito, viene assunto SYSTEM.BROKER.DEFAULT.STREAM.
Nella tabella riportata di seguito sono presenti le opzioni disponibili per entrambe le applicazioni client MQRFH e MQRFH2 che pubblicano messaggi; la tabella mostra le opzioni per il flusso predefinito e per il flusso di esempio StreamX.
Autore (publisher) MQRFH | Autore (publisher) MQRFH2 | |||
---|---|---|---|---|
flusso predefinito | StreamX | flusso predefinito | StreamX | |
Sottoscrittore (subscriber) MQRFH | S1,P1 | S2,P2 | S1,P3 | S2,P4 |
Sottoscrittore (subscriber) MQRFH2 | S3,P1 | S4,P2 | S3,P3 | S4,P4 |
In una rete di WebSphere MQ Pubblicazione/Sottoscrizione, un broker non deve supportare la stessa serie di flussi dei relativi neighbor. Se un broker non supporta un flusso supportato da uno dei relativi broker neighbor, le pubblicazioni associate a tale flusso non sono disponibili ai client di tale broker.
Quando un broker WebSphere Message Broker si unisce alla rete, supporta tutti i flussi dei relativi broker neighbor di WebSphere MQ Pubblicazione/Sottoscrizione. Ciò significa che i client del broker WebSphere Message Broker possono indirizzare le pubblicazioni di qualsiasi flusso supportato da uno qualsiasi dei relativi neighbor di WebSphere MQ Pubblicazione/Sottoscrizione.
Tuttavia, per rendere disponibili tali pubblicazioni, è necessario definire le code di flusso e definire e distribuire i flussi di messaggi che le supportano al broker WebSphere Message Broker.
Una rete eterogenea
La coda di flusso predefinita SYSTEM.BROKER.DEFAULT.STREAM è sempre supportata da ogni broker in una rete di WebSphere MQ Pubblicazione/Sottoscrizione e deve essere definita in ogni broker WebSphere Message Broker in una rete eterogenea. In ogni broker, è necessario definire e distribuire un flusso di messaggi per servire questa coda.
Quando un broker WebSphere Message Broker viene integrato in una rete di WebSphere MQ Pubblicazione/Sottoscrizione e collega due o più broker di WebSphere MQ Pubblicazione/Sottoscrizione che condividono flussi comuni, è necessario definire le code di flusso comuni, e definire e distribuire i flussi di messaggi a loro disposizione, nel broker WebSphere Message Broker.
Ad esempio, il broker WebSphere Message Broker NEWBROKER deve avere una coda di flusso definita per BULLETIN.STREAM. Deve inoltre avere un flusso di messaggi definito e distribuito per fornire un servizio di pubblicazione per tale coda.
Quando un broker di WebSphere MQ Pubblicazione/Sottoscrizione viene migrato su un broker WebSphere Message Broker (utilizzando il comando migmqbrk), i flussi supportati in fase di migrazione vengono replicati in modo esatto nel broker WebSphere Message Broker. Successivamente, non può essere eseguita alcuna modifica; ovvero, non è possibile aggiungere o eliminare flussi da questa serie replicata. La migrazione non è completa finché non sono stati creati e distribuiti i flussi di messaggi che elaborano tutti questi flussi.