Interoperação com o IBM MQ: conceitos-chave do IBM MQ

Se não estiver familiarizado com os conceitos básico do IBM MQ, leia sobre os objetos no IBM MQ que são importantes para a interoperação com o WebSphere Application Server.

Filas e Tópicos

Uma fila é uma estrutura de dados usada para armazenar mensagens. Os programas de aplicativos podem usar o JMS ou chamadas de API do IBM MQ para colocar mensagens nas filas do IBM MQ. Outros aplicativos podem obter as mensagens a partir das filas.

Um tópico é o assunto das informações que são publicadas em uma mensagem de publicação/assinatura. Em vez de colocar uma mensagem em uma determinada fila, os programas de aplicativos podem publicar uma mensagem para um tópico. Outros aplicativos obtêm as mensagens assinando o tópico para receber todas as mensagens publicadas para esse tópico.

Quando um aplicativo coloca uma mensagem em uma fila, existe apenas uma cópia da mensagem. Mesmo se mais de um aplicativo puder obter mensagens da fila, apenas um consumidor poderá receber cada mensagem. Entretanto, quando um aplicativo publica uma mensagem em um tópico, qualquer número de assinantes poderá receber uma cópia da mensagem.

Gerenciadores de Filas e Grupos de Filas Compartilhadas

Cada fila do IBM MQ é propriedade de um gerenciador de filas. O gerenciador de filas é responsável por manter as filas que ele possui e por colocar nas filas apropriadas todas as mensagens que recebe. Os programas de aplicativos se conectam a um gerenciador de filas quando desejam colocar mensagens nas filas. Os gerenciadores de filas também podem colocar mensagens em filas como parte de sua operação normal.

No IBM MQ Versão 7, cada tópico no IBM MQ também é propriedade de um gerenciador de filas. O gerenciador de filas recebe mensagens dos publicadores e as assinaturas dos assinantes. O gerenciador de filas é responsável por rotear as mensagens publicadas para os assinantes que registraram um interesse no tópico das mensagens. Em versões anteriores do IBM MQ, o sistema de mensagens de publicação/assinatura é tratado por um broker de publicação/assinatura, não por gerenciadores de filas.

No IBM MQ for z/OS, é possível configurar filas compartilhadas que podem ser acessadas por vários gerenciadores de filas em um sysplex. As mensagens que são colocadas nas filas compartilhadas são armazenadas em estruturas de listas em um Recurso de Acoplamento do zSeries, e grandes mensagens possuem seus dados de mensagem retidos em uma tabela compartilhada DB2.

Os gerenciadores de filas que podem acessar o mesmo conjunto de filas compartilhadas formam um grupo chamado de grupo de filas compartilhadas. Cada membro do grupo de filas compartilhadas se conecta a um sistema DB2 para acessar definições compartilhadas para objetos do IBM MQ, incluindo filas e canais. Qualquer gerenciador de filas no grupo pode recuperar as mensagens retidas em uma fila compartilhada. Um aplicativo que deseja acessar uma das filas compartilhadas pode, portanto, conectar-se a qualquer um dos gerenciadores de filas dentro do grupo de filas compartilhadas e, assim, o aplicativo não depende da disponibilidade de um gerenciador de filas específico.

Filas locais, filas remotas e clusters

Em uma rede do IBM MQ, a intercomunicação é realizada com o envio de mensagens de um gerenciador de filas ou grupo de filas compartilhadas (para IBM MQ for z/OS) para outro.

Os programas de aplicativos do IBM MQ podem colocar mensagens em uma fila local, que é uma fila no gerenciador de filas ao qual o aplicativo está conectado. Um gerenciador de filas possui uma definição para cada fila que ele possui. Um gerenciador de filas também pode ter definições para as filas que outros gerenciadores de filas possuem. A partir da perspectiva do gerenciador de filas local ao qual o aplicativo está conectado, essas outras filas são filas remotas e os gerenciadores de filas que as possuem são gerenciadores de filas remotos.

Assim como colocar mensagens em uma fila local, os programas de aplicativos do IBM MQ conectados a um gerenciador de filas local pode colocar mensagens desejadas em filas remotas. O IBM MQ deve, então, transmitir as mensagens para os gerenciadores de filas remotos que possuem as filas remotas. Quando as mensagens são destinadas para uma fila do IBM MQ em um gerenciador de filas remoto, o gerenciador de filas local as manterá em uma fila de transmissão até que ele esteja pronto para encaminhá-las para o gerenciador de filas remoto. Uma fila de transmissão é um tipo especial de fila local na qual as mensagens ficam armazenadas até que possam ser transmitidas com êxito e armazenadas no gerenciador de filas remoto.

Os gerenciadores de filas do IBM MQ podem ser conectados para formar um cluster, usando qualquer um dos protocolos de comunicações que estão disponíveis em sua plataforma IBM MQ. Ao agrupar gerenciadores de filas em um cluster, as filas ainda estão hospedadas pelos gerenciadores de filas (portanto, elas não são filas compartilhadas). Entretanto, ao se conectar ao cluster, os gerenciadores de filas podem enviar uma mensagem para qualquer outro gerenciador de filas no cluster, e tornar algumas ou todas as filas que hospedam disponíveis qualquer outro gerenciador de filas no cluster como filas de cluster. Não é necessário configurar definições explícitas em cada gerenciador de filas para cada fila remota e para a conexão com cada gerenciador de filas remoto. Cada gerenciador de filas no cluster também usa uma única fila de transmissão de cluster para reter mensagens para qualquer um dos outros gerenciadores de filas, portanto não é necessário configurar uma fila de transmissão para cada gerenciador de filas remoto.

No IBM MQ Versão 7, também é possível conectar os gerenciadores de filas do IBM MQ que possuem tópicos para o sistema de mensagens de publicação/assinatura. É possível agrupar gerenciadores de filas que possuem tópicos em um cluster de publicação/assinatura, com links entre todos os membros, ou em uma hierarquia de publicação/assinatura, com relacionamentos pai e filho entre os gerenciadores de filas conectados. As publicações e assinaturas para tópicos podem ser compartilhadas entre todos os gerenciadores de filas no cluster ou hierarquia.

Canais de Mensagens

As mensagens do IBM MQ, sejam elas colocadas em filas ou publicadas em tópicos, são transmitidas entre gerenciadores de filas por meio de canais de mensagens. Um canal de mensagem é um link de comunicação unidirecional entre dois gerenciadores de filas. Ele pode transportar mensagens destinadas para qualquer quantidade de filas ou tópicos que o gerenciador de filas remoto hospeda, ou para qualquer quantidade de gerenciadores de filas de destino.

É possível definir os seguintes tipos de canais de mensagens em IBM MQ:
  • Canal emissor/receptor
  • Canal solicitante/servidor
  • Canal solicitante/emissor
  • Canal servidor/receptor
  • Canais cluster/emissor
  • Canais cluster/receptor

Por exemplo, para definir o tipo de canal de mensagem chamado de canal emissor/receptor, defina um canal emissor na extremidade de envio, que poderia ser o gerenciador de filas local. Em seguida, use o mesmo nome para definir um canal receptor na extremidade de recebimento, que poderia ser o gerenciador de filas remoto. Um canal de mensagens é unidirecional, portanto, se desejar que as mensagens fluam em ambas as direções, será necessário definir um segundo canal de mensagens na direção oposta entre os gerenciadores de filas.

Para os gerenciadores de filas em um cluster, não é necessário definir canais de mensagens entre cada par de gerenciadores de filas. Em vez disso, defina dois canais de mensagens para conectar cada gerenciador de filas ao cluster: um canal do receptor de clusters para recebimento de mensagens e um canal do emissor de clusters pelos quais o gerenciador de filas se apresenta e conhece o cluster. O gerenciador de filas pode, então, enviar uma mensagem para qualquer outro gerenciador de filas no cluster.

Não confunda canais de mensagens com canais MQI. O MQI é a Message Queue Interface no IBM MQ, que os aplicativos usam para interagir com gerenciadores de filas. Um canal MQI é um tipo de conexão usado por um aplicativo cliente do IBM MQ para conectar-se a um gerenciador de filas que está em execução em outro sistema, e para emitir chamadas do MQI para o gerenciador de filas.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cmm_mq_keyconc
Nome do arquivo: cmm_mq_keyconc.html