Participe da Maratona Behind the Code! A competição de programação que mais te desafia! Inscreva-se aqui

Obtenha uma fila do IBM MQ para desenvolvimento no Ubuntu

Para ver como o IBM MQ funciona, você será guiado por meio da criação e configuração de um gerenciador de filas (servidor). Em seguida, você conectará um aplicativo (cliente) a ele.

Após concluir o tutorial, você estará apto a enviar mensagens para uma fila e a recuperar mensagens dela.

É possível fazer o download, instalar e executar o gerenciador de filas (servidor) do IBM MQ de várias maneiras:

  • Em um contêiner.
  • No IBM Cloud.
  • Em vários sistemas operacionais: Linux/Ubuntu (este tutorial) ou Windows. Para MacOS, use o MQ em Contêineres.

Objetivos do aprendizado

Após concluir este tutorial, você compreenderá esses conceitos:

  • Gerenciadores de fila do IBM MQ
  • Filas do IBM MQ
  • Sistema de mensagens ponto a ponto

Pré-requisitos

As etapas do tutorial exigirão que você faça download e instale cada um desses pré-requisitos:

Tempo estimado

Este tutorial deve levar cerca de 30 minutos.

Etapas

  1. Crie um usuário e grupo para executar aplicativos clientes do MQ
  2. Faça download do IBM MQ
  3. Instale o IBM MQ
  4. Configure seu ambiente do MQ
  5. Crie e configure um gerenciador de filas
  6. Coloque e obtenha mensagens de uma fila

Etapa 1. Crie um usuário e grupo para executar aplicativos clientes do MQ

Antes de começar a instalação, precisamos criar um grupo chamado “mqclient” e uma conta do usuário chamada “app” neste grupo. Esses nomes nos permitem configurar os objetos MQ com os quais trabalharemos, como filas e canais.

Nós nunca precisamos de fato efetuar login como o usuário “app”. Após ele ter sido criado, permaneça com login efetuado em sua própria conta.

Crie o grupo mqclient no terminal com o comando:

sudo addgroup mqclient

Deverá aparecer uma confirmação de que a ação foi bem-sucedida. Em seguida, nós criamos o usuário “app” e incluímos este usuário no grupo mqclient:

sudo adduser app

Você será solicitado a criar uma senha para a conta “app”. Esta solicitação deve ser atendida. Em seguida, serão solicitados outros detalhes da conta, que você pode deixar em branco. Basta pressionar ENTER até que a conta seja criada.

Agora, precisamos incluir o usuário “app” no grupo “mqclient” e verificar se isso foi bem-sucedido.

sudo adduser app mqclient
groups app

Nós devemos obter a seguinte saída:

Saída da inclusão do usuário e do grupo

Agora que a conta está configurada corretamente, podemos seguir para a instalação e configuração de fato.

Agora você tem duas opções para instalar o MQ on Ubuntu:

  • Se desejar passar por cada etapa da instalação e configuração, realize as etapas 2 a 5 deste tutorial e insira os comandos manualmente. Em seguida, continue com a Etapa 6.

  • Se você apenas desejar fazer algo funcionar rapidamente, você poderá usar Este script bash prático que instalará o MQ e configurará seu ambiente de desenvolvimento. Se você usar este script, certifique-se de voltar para este tutorial e continuar com a Etapa 6 para colocar e obter sua primeira mensagem.

Fez sua escolha? Você não deseja mesmo usar o script Bash? Leia para instalar o MQ e definir sua configuração.

Etapa 2. Faça download do IBM MQ

Nós iremos instalar o MQ Advanced for Developers, em seguida, configurá-lo para que você possa desenvolver usando o MQ. Faça download do arquivo tar.gz aqui.

Etapa 3. Instale o IBM MQ

Descompacte a pasta que você transferiu por download. O conteúdo é extraído para uma pasta denominada “MQServer”. Ela contém vários pacotes Debian que precisam ser instalados. Anote o local desta pasta, por exemplo, /home/username/Downloads/MQServer. Abra um terminal e digite:

sudo ./mqlicense.sh -text_only

Isso abre a licença no terminal. Leia a licença e, em seguida, pressione 1 para aceitar os termos. Se você receber um erro e não houver java no seu path, faça o seguinte:

sudo ./mqlicense.sh -text_only -jre $(which java)

Em seguida, desejamos assegurar que o instalador apt possa localizar dependências de pacotes e instalar o MQ adequadamente. Para isso, precisamos incluir a pasta no cache apt.

  1. Navegue para o diretório /etc/apt/sources.list.d
  2. Crie um arquivo .list com um nome como ibmmq-install.list

Dentro desse arquivo, coloque esta linha:

deb [trusted=yes] file:/home/username/Downloads/MQServer ./

em seguida, inclua os pacotes no cache apt com:

sudo apt update

Agora, estamos prontos para instalar o MQ. Instale todos os pacotes com este único comando:

sudo apt install "ibmmq-*"

Agora que instalamos o IBM MQ, vamos verificar se a instalação foi bem-sucedida. Faça isso com o comando /opt/mqm/bin/dspmqver. Deverá aparecer uma saída como esta:

Saída após a instalação do IBM MQ

Sucesso!

Etapa 4. Configure seu ambiente do MQ

Quando a instalação estiver concluída, precisaremos incluir o usuário no grupo de administradores “mqm” para que você tenha privilégios de administrador do MQ, como a capacidade de criar e iniciar um gerenciador de filas. Importante: este não é o usuário “app”, é sua conta do usuário. Você está agindo como o administrador e o usuário “app” está usando a configuração do MQ que você criou. Inclua sua conta do usuário com este comando:

sudo adduser $(whoami) mqm

Agora que sua conta do usuário (não a conta chamada “app”) foi incluída no grupo, queremos usar esses privilégios para configurar um gerenciador de filas. No entanto, precisamos garantir que nosso ambiente do mq esteja configurado. Faça isso inserindo:

cd /opt/mqm/bin
. setmqenv -s

Isso significa que agora é possível inserir comandos do MQ para executar várias tarefas, por exemplo, criar e iniciar um gerenciador de filas. Agora o ambiente está configurado, mas apenas para o shell atual. Será necessário repetir esta etapa se você usar outro shell ou terminal.

Etapa 5. Crie e configure um gerenciador de filas

Vamos criar e iniciar um gerenciador de filas. Use o comando crtmqm para criar um gerenciador de filas chamado QM1:

crtmqm QM1

Inicie nosso novo gerenciador de filas com:

strmqm QM1

Agora que temos um gerenciador de filas, está na hora de configurá-lo e fornecer a ele alguns objetos do MQ. Fazemos isso por meio de um script de configuração. Mova para uma pasta na qual é possível fazer download de um arquivo e digite:

wget mq-dev-config.mqsc https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/mqsc/mq-dev-config.mqsc

Quando o script tiver sido transferido por download, execute-o:

runmqsc QM1 < "./mq-dev-config.mqsc"

Este comando executa o gerenciador de filas QM1 com os comandos de entrada do script .mqsc. Deverá aparecer uma saída como esta:

Saída da execução do gerenciador de filas

Por fim, para concluir o processo, é necessário incluir a autoridade no grupo “mqclient” para que seus membros (ou seja, o usuário “app”) tenham a permissão necessária para conectar-se a um gerenciador de filas para colocar e obter mensagens. Faça isso com os comandos:

setmqaut -m QM1 -t qmgr -g mqclient +connect +inq
setmqaut -m QM1 -n DEV.** -t queue -g mqclient +put +get +browse +inq

Agora, tudo deve estar configurado para você usar o MQ! Nós testaremos isso abaixo enviando nossa primeira mensagem.

Etapa 6. Coloque e obtenha mensagens em uma fila

Então, agora obtivemos uma instalação do MQ que permite nos conectar às nossas filas pré-configuradas e enviar mensagens.

Se você está se juntando a nós novamente após usar o script Bash, bem-vindo de volta! Se você usou o script Bash, precisará executar uma etapa extra aqui, para permitir que sua conta use os comandos do MQ. Se você usou o script, basta inserir:

. /opt/mqm/bin/setmqenv -s

Isso irá configurar seu ambiente do MQ para o shell atual. Isso precisará ser refeito se você usa um shell ou terminal diferente. Pronto? Ótimo, vamos continuar com o envio de mensagens.

Para usar um programa de colocação de mensagem de amostra, amqsputc, precisamos exportar duas variáveis de ambientes.

export MQSERVER='DEV.APP.SVRCONN/TCP/localhost(1414)'
export MQSAMP_USER_ID='app'

MQSERVER especifica o endpoint do gerenciador de filas. MQSAMP_USER_ID especifica a conta que possui permissão para executar os programas de amostra incluídos com a instalação do MQ.

Lembre-se, não há a necessidade de efetuar login como o usuário “app”. Basta executar este comando do terminal para executar o script de colocação da mensagem:

cd /opt/mqm/samp/bin
./amqsputc DEV.QUEUE.1 QM1

Isso deve solicitar a senha para a conta do usuário “app”. nsira isso e, em seguida, você terá a opção de colocar uma ou mais mensagens separadas, pressionando ENTER, na fila DEV.QUEUE.1. Quando tiver concluído a colocação de mensagens, pressione ENTER duas vezes para confirmá-las na fila.

Finalmente, podemos obter as mensagens de nossa fila. Execute:

./amqsgetc DEV.QUEUE.1 QM1

Insira a senha para o usuário “app” e suas mensagens deverão ser retornadas. O programa espera 15 segundos. Caso novas mensagens cheguem, ele é encerrado. A mensagem retornada deve ser semelhante a esta:

Saída mostrando mensagem retornada

Resumo

Neste tutorial, você configurou o gerenciador de filas em execução em sua máquina do Windows para conexões do cliente recebidas. O aplicativo amqsputc abriu uma fila e colocou mensagens nela. O aplicativo amqsgetc recebeu mensagens da mesma fila.

Ao começar a desenvolver seus próprios aplicativos clientes para conectar-se ao gerenciador de filas, você seguirá estas etapas:

  1. Configure a conexão com o gerenciador de filas.
  2. Abra uma fila.
  3. Coloque uma mensagem na fila.
  4. Obtenha a mensagem da fila.
  5. Feche a conexão com o gerenciador de filas.

Este processo demonstra o estilo ponto a ponto do sistema de mensagens.

O aplicativo amqsputc age como o ponto produtor quando ele coloca uma mensagem. O aplicativo amqsgetc age como o ponto consumidor quando ele obtém a mensagem da fila.

No IBM MQ, o gerenciador de filas é efetivamente o servidor parte do sistema e os aplicativos que se conectam a ele são os clientes.

Geralmente, são os administradores que cuidam do servidor MQ no qual todos os objetos do MQ estão definidos e o roteamento de mensagens ocorre. Os aplicativos clientes são criados por desenvolvedores e o IBM MQ fornece bibliotecas do cliente que os desenvolvedores devem incluir em seus aplicativos. Essas bibliotecas, também chamadas de clientes do MQ, tratam e usam os objetos do MQ que os administradores configuraram no lado do servidor do MQ. Em cenários mais complexos, as bibliotecas do MQ realizam a maior parte do trabalho pesado do sistema de mensagens para você, portanto, você precisa apenas aprender como usá-las.

É necessária a configuração nos lados do servidor e do cliente para que o sistema de mensagens funcione.

Ao começar a desenvolver aplicativos clientes do MQ pela primeira vez, ajuda ter acesso ao seu próprio gerenciador de filas e a uma fila, para testar seu aplicativo cliente. A instalação do IBM MQ em sua máquina Ubuntu fornece acesso a um gerenciador de filas e várias opções para configurar objetos do MQ à medida que você começa a desenvolver suas próprios aplicativos do MQ.

Próximas etapas

O que vem a seguir? Grave seu primeiro aplicativo JMS.

Deseja parar ou remover seu gerenciador de filas? Desinstalar o MQ?

Se você pretende continuar com os outros tutoriais na linha de aprendizagem do MQ Essentials, não use esses comandos.

Para interromper o seu gerenciador de filas, emita este comando: endmqm QM1

Para remover seu gerenciador de filas, emita este comando: dltmqm QM1

Para desinstalar o IBM MQ e remover a definição em cache do produto, use este comando: apt purge "ibmmq-*"

Para manter a definição em cache, use este comando: apt remove "ibmmq-*"

Aviso

O conteúdo apresentado aqui foi traduzido da página do IBM Developer nos EUA. É possível conferir o conteúdo original em este link.