Canali

IBM® MQ può utilizzare tre tipi diversi di canali: un canale di messaggi, un canale MQI e un canale AMQP.

Non confondere questi distinti tipi di canali:

Canale di messaggi
Un canale di messaggi è un link di comunicazione unidirezionale tra due gestori code. IBM MQ utilizza canali di messaggi per trasferire i messaggi tra i gestori code. Per inviare i messaggi in entrambe le direzioni, è necessario definire un canale per ciascuna direzione.
canale MQI
Un canale MQI è bidirezionale e connette un'applicazione (client MQI) a un gestore code su una macchina server. IBM MQ utilizza canali MQI per trasferire chiamate e risposte MQI tra client MQI e gestori code.
[UNIX, Linux, Windows, IBM i]Canale AMQP
Un canale AMQP, che è bidirezionale e connette un client AMQP a un gestore code su una macchina server. IBM MQ utilizza i canali AMQP per il trasferimento di chiamate e risposte AMQP tra applicazioni AMQP e gestori code.

Quando si parla di canali di messaggi, la parola canale spesso viene utilizzata come sinonimo per la definizione di canale. Di solito il contesto aiuta a capire se si parla di una canale completo, che ha due estremità, o di una definizione di canale, che ha una estremità sola.

Canali dei messaggi

Le definizioni dei canali di messaggi possono essere di uno dei seguenti tipi:

Tipo di definizione di canali dei messaggi Descrizione
Mittente Un canale mittente è un canale dei messaggi che il gestore code utilizza per inviare i messaggi ad altri gestori code. Per inviare i messaggi mediante un canale mittente, è necessario creare, sull'altro gestore code, un canale ricevente con lo stesso nome del canale mittente. È anche possibile utilizzare i canali del mittente con i canali del richiedente, se si implementa un meccanismo di "callback".
Server Un canale server è un canale di messaggi che il gestore code utilizza per inviare i messaggi ad altri gestori code. Per inviare i messaggi mediante un canale server, è anche necessario creare, sull'altro gestore code, un canale ricevente con lo stesso nome del canale server. I canali server possono essere utilizzati anche con i canali richiedenti. In questo caso, la definizione di canale richiedente richiede l'avvio della definizione di canale server all'altra estremità del canale. Il server invia i messaggi al richiedente. Quindi, il server inizia la comunicazione, attiva fino a che il nome della connessione del canale partner è noto.
Ricevente Un canale ricevente è un canale di messaggi utilizzato dal gestore code per ricevere i messaggi dagli altri gestori code. Per ricevere i messaggi mediante un canale ricevente, è anche necessario creare, sull'altro gestore code, un canale mittente o server con lo stesso nome di questo canale ricevente.
Richiedente Un canale Richiedente è un canale di messaggi utilizzato dal gestore code per ricevere messaggi da altri gestori code. Un canale RIchiedente può richiedere che sia avviato il canale partner definito all'estremità remota. Se il canale partner è un canale Server, il canale Server accetta la richiesta di avvio e inizia a inviare messaggi, dalla coda di trasmissione identificata nella definizione di canale Server, al canale Richiedente. Se il canale partner è un canale Mittente, il canale Mittente accetta la richiesta di avvio ma chiude quindi la connessione con il Richiedente. Il canale Mittente viene quindi avviato, negozia una sessione con il canale Richiedente partner e inizia a inviare messaggi dalla coda di trasmissione identificata nella definizione del canale Mittente. Quest'ultimo caso fornisce fondamentalmente un meccanismo di richiamo, dal momento che il canale Richiedente richiede al canale Mittente di richiamare.
Mittente del cluster Una definizione di canale mittente del cluster (CLUSSDR) definisce l'estremità di invio su cui il gestore code di un cluster può inviare le informazioni sul cluster a uno dei repository completi. Il canale mittente del cluster viene utilizzato per notificare al repository le modifiche apportate allo stato del gestore code, ad esempio nel caso dell'aggiunta o della rimozione di una coda. Essa viene utilizzata anche per trasmettere i messaggi. I gestori code con repository completo hanno canali mittente cluster che fanno riferimento l'uno all'altro. Tali canali vengono utilizzati per comunicare le modifiche allo stato del cluster. Non è particolarmente importante conoscere a quale repository completo una definizione del canale CLUSSDR del gestore code fa riferimento. Una volta stabilito il contatto iniziale, vengono definiti automaticamente ulteriori oggetti del gestore code del cluster in modo che il gestore code possa inviare le informazioni sul cluster a ogni repository completo e i messaggi a ogni gestore code. Per ulteriori informazioni, fare riferimento alla sezione Cluster di gestori code.
Ricevente del cluster Una definizione di canale ricevente del cluster (CLUSRCVR) definisce l'estremità di ricezione su cui il gestore code di un cluster può ricevere le informazioni sul cluster da altri gestori code. Un canale ricevente del cluster trasporta inoltre le informazioni sul destinate al repository. Definendo il canale ricevente del cluster, il gestore code indica agli altri gestori code che è disponibile per la ricezione di messaggi. È necessario disporre di almeno un canale ricevente del cluster per ogni gestore code del cluster. Per ulteriori informazioni, fare riferimento alla sezione Cluster di gestori code.

Per ogni canale, è necessario definire entrambe le estremità in modo da avere una definizione di canale per ognuna di esse. Le due estremità del canale devono essere di tipo compatibile.

È possibile avere le seguenti combinazioni di definizioni di canali:

  • Mittente-Ricevente
  • Server-Ricevente
  • Richiedente-Server
  • Richiedente-Mittente (callback)
  • Mittente del cluster-Ricevente del cluster

Agente canale dei messaggi (MCA, message channel agent)

Ogni definizione di canale che viene creata appartiene a un determinato gestore code. Un gestore code può avere diversi canali, dello stesso tipo o di tipo differente. A ogni estremità del canale è presente un programma, un MCA (message channel agent), ovvero un agent dei messaggi dei canali. A un'estremità del canale, l'MCA chiamante prende i messaggi dalla coda di trasmissione e li inoltra sul canale. All'altra estremità del canale, l'MCA rispondente riceve i messaggi e li consegna al gestore code remoto.

Un MCA chiamante può essere associato a un canale mittente, server o richiedente. Un MCA rispondente può essere associato a qualsiasi tipo di canale.

IBM MQ supporta le seguenti combinazioni di tipi di canale alle due estremità di una connessione:

Chiamante Direzione del flusso di messaggi Rispondente
Tipo di canale È necessario il listener?   È necessario il listener? Tipo di canale
Mittente No Dal chiamante al rispondente Ricevente
Server No Dal chiamante al rispondente Ricevente
Server No Dal chiamante al rispondente Richiedente
Richiedente No Dal rispondente al chiamante Server
Richiedente Dal rispondente al chiamante Mittente

Canali MQI

I canali MQI possono essere di uno dei seguenti tipi:

Tipo canale MQI Descrizione
Connessione server Un canale di connessione server è un canale MQI bidirezionale utilizzato per connettere un client IBM MQ a un server IBM MQ. Il canale di connessione server è l'estremità server del canale.
Connessione client Un canale di connessione client è un canale MQI bidirezionale utilizzato per collegare un client IBM MQ a un server IBM MQ . IBM MQ Explorer utilizza anche le connessioni client per connettersi ai gestori code remoti. Il canale di connessione client è l'estremità client del canale. Quando si crea un canale di connessione client, viene creato un file sul computer su cui è presente il gestore code. È necessario quindi copiare il file di connessione client al computer client IBM MQ.
[UNIX, Linux, Windows, IBM i]

Canali AMQP

Esiste un solo tipo di canale AMQP.

Il canale è utilizzato per connettere un'applicazione di messaggistica AMQP a un gestore code, abilitando l'applicazione allo scambio di messaggi con le applicazioni IBM MQ. Un canale AMQP consente di sviluppare un'applicazione utilizzando MQ Light e di distribuirla quindi come un'applicazione enterprise, avvalendosi delle funzioni di livello enterprise fornite da IBM MQ.

Per ulteriori informazioni sui canali, consultare Canali.