Flussi

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

Note relative al sottoscrittore (subscriber)

S1
Il sottoscrittore (subscriber) esegue la sottoscrizione senza un nome di flusso o con il nome di flusso "SYSTEM.BROKER.DEFAULT.STREAM".
S2
Il sottoscrittore (subscriber) esegue la sottoscrizione con il nome di flusso "StreamX".
S3
Il sottoscrittore (subscriber) esegue la sottoscrizione dell'argomento senza aggiungere "$SYS/STREAM/<streamname>/".
S4
Il sottoscrittore (subscriber) esegue la sottoscrizione dell'argomento aggiungendo il prefisso "$SYS/STREAM/StreamX/".

Note relative all'autore (publisher)

P1
L'autore (publisher) esegue la pubblicazione su qualsiasi coda specificando il nome di flusso "SYSTEM.BROKER.DEFAULT.STREAM" oppure esegue la pubblicazione senza specificare un nome di flusso su una qualsiasi coda con la proprietà Denominazione implicita di flusso impostata su false.
P2
L'autore (publisher) esegue la pubblicazione su una qualsiasi coda specificando il nome di flusso "StreamX" oppure esegue la pubblicazione senza specificare un nome di flusso sulla coda "StreamX" con la proprietà Denominazione implicita di flusso impostata su true.
P3
L'autore (publisher) esegue la pubblicazione su una qualsiasi coda senza aggiungere il prefisso "$SYS/STREAM/<Stream>/" all'argomento.
P4
L'autore (publisher) esegue la pubblicazione su una qualsiasi coda e aggiunge il prefisso "$SYS/STREAM/StreamX/" all'argomento.
Nota: Il prefisso "$SYS/STREAM/<streamname>/" viene eliminato da tutti gli argomenti in una pubblicazione MQRFH2 quando viene consegnata ad un sottoscrittore (subscriber) MQRFH.

Flussi e broker neighbor

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.

Nella figura riportata di seguito sono riportati gli effetti relativi all'aggiunta di un broker WebSphere Message Broker in un ambiente di WebSphere MQ Pubblicazione/Sottoscrizione multiflusso. Il broker WebSphere Message Broker, NEWBROKER, è stato utilizzato per unire i broker di WebSphere MQ Pubblicazione/Sottoscrizione, BROKERA e BROKERB.

Una rete eterogenea


Una rete eterogenea. Questa figura mostra un broker <ph conref='edvent.dita#edvent/mqsi'></ph>, NEWBROKER, posto tra due broker <ph conref='edvent.dita#edvent/sdk'></ph>, BROKERA e BROKERB. E' presente inoltre un elenco dei flussi associati a ciascuno dei due broker <ph conref='edvent.dita#edvent/sdk'></ph>.

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.

E' necessario definire code di flusso e flussi di messaggi associati nel broker WebSphere Message Broker per gli altri flussi mostrati nella figura, solo se, uno dei relativi neighbor di WebSphere MQ Pubblicazione/Sottoscrizione, può inviare un messaggio ad una di queste code. Un messaggio viene inviato solo se si verifica uno dei seguenti eventi:
  1. Una sottoscrizione ad una pubblicazione su uno di questi flussi viene registrata da un client del broker WebSphere Message Broker.
  2. Un comando DeletePublication per il flusso viene emesso da un client in un punto qualsiasi nell'ambito della rete del broker.
Se non si è certi che i casi descritti sopra potrebbero verificarsi, creare code di flusso e flussi di messaggi nel broker WebSphere Message Broker per ogni flusso supportato da un neighbor di WebSphere MQ Pubblicazione/Sottoscrizione. Se non si esegue ciò, potrebbe verificarsi quanto riportato di seguito:
  • I messaggi inviati dai broker di WebSphere MQ Pubblicazione/Sottoscrizione sono inseriti in una DLQ (dead-letter queue) del broker WebSphere Message Broker se su tale broker non esiste la coda di flusso.
  • I messaggi vengono inseriti nelle code di flusso sul broker WebSphere Message Broker se la coda di flusso esiste, ma non le viene distribuito alcun flusso di messaggi.

Flussi e migrazione

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.

Attività correlate
Sottoscrizione
Riferimenti correlati
Intestazione MQRFH2
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
aq01180_