2015-04-22 27 views
5

Desidero creare un programma di pubblicazione/sottoscrizione per calcolare la manipolazione della matrice su un cluster.IBM MQ pubblica/sottoscrivi invia messaggio a un sottoscrittore

Quando un editore invia un messaggio a un argomento, il messaggio viene copiato su tutti gli abbonati.

Desidero inviare una copia del messaggio a un utente e il messaggio elimina e non invia ad altri utenti.

risposta

3

Ci sono due modi per farlo.

  1. Effettuare un abbonamento amministrativo e fare in modo che tutti i sottoscrittori leggano i messaggi dalla coda a cui fa riferimento la sottoscrizione.
  2. Utilizzare MQ V8.0, la nuova interfaccia JMS 2.0 e la funzione Shared Subscription.

Si noti che in entrambi i casi, tutti gli abbonati sono connessi allo stesso gestore code. Sebbene Pub/Sub crei un singolo messaggio logico, quando viene trasmesso ad altri gestori code diventa più messaggi fisici e il loro consumo da parte degli abbonati non è coordinato attraverso la rete.

0

Utilizzare una coda, non un argomento. Gli argomenti sono progettati per la pubblicazione uno-a-molti, le code consentono più listener, ma ogni messaggio viene consegnato a un solo listener.

+0

In realtà, a partire da JMS 2.0, l'OP di funzionalità è di richiesta è parte della specifica e si chiama [sottoscrizione condivisa] (http://www.oracle.com/technetwork/articles/java/jms2messaging-1954190. html). Detto questo, è un modello valido e prima che le persone di JMS 2.0 lo raggiungessero indirizzando più istanze dell'app a una coda in cui una sottoscrizione consegnava messaggi di argomento. In effetti, la nuova funzione esiste * perché * è un modello così comune. –