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

Grave e execute seu primeiro aplicativo JMS do IBM MQ

JMS significa Serviço de Mensagens Java. JMS é um padrão que define como você pode acessar sistemas de mensagens corporativos em programas Java. A API do JMS é implementada por provedores de serviços de sistema de mensagens, como o IBM MQ para permitir que aplicativos clientes JMS acessem o serviço de sistema de mensagens do provedor.

Neste tutorial, você colocará uma mensagem que contém seus dados em uma fila e o aplicativo consumidor a obterá na fila. Você usará a API do JMS para se conectar ao seu provedor de sistemas de mensagens, que nesse caso é o IBM MQ.

Pré-requisitos

Desenvolvendo um app ponto a ponto com JMS e IBM MQ

Seu aplicativo precisa estar apto a fazer essas coisas:

  • Conectar-se ao gerenciador de filas
  • Abrir uma fila
  • Colocar uma mensagem
  • Obter uma mensagem
  • Fechar a fila
  • Desconectar-se do gerenciador de filas

Nós assumimos que esses objetos do MQ estão configurados no servidor MQ ao qual você está se conectando:

  • Gerenciador de filas QM1
  • Fila DEV.QUEUE.1
  • Canal DEV.APP.SVRCONN
  • Porta 1414

Se você estiver usando seus próprios objetos, precisará ajustar esses nomes de acordo. Ou, é possível acessar um tutorial Preparar, Configurar, Conectar para começar.

Se você já trabalhou com um tutorial Preparar, Configurar, Conectar, seu gerenciador de filas já deve estar configurado corretamente. Se não, será necessário configurar a autorização no gerenciador de filas para aceitar a conexão a partir do aplicativo por meio de um canal nomeado e o aplicativo precisará estar autorizado para colocar e obter mensagens na fila.

Se você já tem um aplicativo JMS, mas precisa de alguma ajuda com o desempenho ou a depuração, veja neste artigo.

Configure seu ambiente

Nesta primeira etapa, nós analisamos os pré-requisitos de instalação e configuração.

  1. Crie um diretório para salvar os arquivos necessários para a amostra, por exemplo, em seu diretório inicial:

     mkdir MQClient
    
  2. Na pasta MQClient, faça o download do arquivo com.ibm.mq.allclient.jar usando curl.

     curl -o com.ibm.mq.allclient-9.1.4.0.jar https://repo1.maven.org/maven2/com/ibm/mq/com.ibm.mq.allclient/9.1.4.0/com.ibm.mq.allclient-9.1.4.0.jar
    
  3. Na pasta MQClient, faça o download do arquivo da API do JMS usando curl.

     curl -o javax.jms-api-2.0.1.jar https://repo1.maven.org/maven2/javax/jms/javax.jms-api/2.0.1/javax.jms-api-2.0.1.jar
    
  4. Se você ainda não tem o Java JDK versão 8, poderá fazer o download dele aqui. Selecione o download correto para sua plataforma e instale.

Fazendo o download do aplicativo de amostra JMS ponto a ponto

Pegue a amostra do GitHub, salve-a em sua máquina local, examine algumas das principais criações do JMS e onde é possível incluir os detalhes do host, da porta, do canal e da fila para que sua amostra possa se conectar ao gerenciador de filas.

  1. Em seu diretório MQClient, crie a seguinte estrutura de diretório:

com/ibm/mq/samples/jms.

No Windows:
```
mkdir -p com\ibm\mq\samples\jms
```

No Linux:
```
mkdir -p com/ibm/mq/samples/jms
```
  1. No diretório MQClient/com/ibm/mq/samples/jms, faça o download da amostra JmsPutGet.java do GitHub usando curl:

     curl -o JmsPutGet.java https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/jms/JmsPutGet.java
    
  2. Edite o arquivo JMSPutGet.java. Substitua as variáveis do host, da porta e de senha do app para corresponder à configuração do seu gerenciador de filas.

     // Create variables for the connection to MQ
     private static final String HOST = "_YOUR_HOSTNAME_"; // Host name or IP address
     private static final int PORT = 1414; // Listener port for your queue manager
     private static final String CHANNEL = "DEV.APP.SVRCONN"; // Channel name
     private static final String QMGR = "QM1"; // Queue manager name
     private static final String APP_USER = "app"; // User name that application uses to connect to MQ
     private static final String APP_PASSWORD = "_APP_PASSWORD_"; // Password that the application uses to connect to MQ
     private static final String QUEUE_NAME = "DEV.QUEUE.1"; // Queue that the application uses to put and get messages to and from
    

Agora, você deve estar apto a compilar seu aplicativo e executá-lo.

Compile e execute seu aplicativo JMS

Esse é o local onde você finalmente conectará seu aplicativo ao gerenciador de filas e colocará e obterá mensagens na fila.

Para compilar a amostra, acesse seu diretório MQClient.

Use javac para compilar seu aplicativo.

  1. No diretório MQClient, use javac para compilar seu aplicativo.

    No Windows:

     javac -cp .\com.ibm.mq.allclient-9.1.4.0.jar;.\javax.jms-api-2.0.1.jar com\ibm\mq\samples\jms\JmsPutGet.java
    

    No Linux:

     javac -cp ./com.ibm.mq.allclient-9.1.4.0.jar:./javax.jms-api-2.0.1.jar com/ibm/mq/samples/jms/JmsPutGet.java
    

    Para confirmar se a amostra foi compilada, execute um desses comandos. Agora deve aparecer um arquivo .class acompanhando o arquivo .java.

    No Windows, execute o comando dir:

     dir com\ibm\mq\samples\jms\
    

    No Linux, execute o comando ls:

     ls -l com/ibm/mq/samples/jms/
    

    Agora deve aparecer um arquivo .class acompanhando o arquivo .java: Saída do comando ls

  2. Execute seu aplicativo.

    No Windows:

     java -cp .\com.ibm.mq.allclient-9.1.4.0.jar;.\javax.jms-api-2.0.1.jar;. com.ibm.mq.samples.jms.JmsPutGet
    

    No Linux:

     java -cp ./com.ibm.mq.allclient-9.1.4.0.jar:./javax.jms-api-2.0.1.jar:. com.ibm.mq.samples.jms.JmsPutGet
    

    Deverá aparecer uma saída como esta:

Saída da execução de seu app JMS

Próximas etapas

Parabéns! Você editou e compilou seu primeiro aplicativo JMS, enviou uma mensagem para uma fila do IBM MQ e obteve essa mensagem na fila. Você também configurou o seu ambiente com tudo o que é necessário para desenvolver com o JMS e o IBM MQ.

Você tem um entendimento básico do que pretende atingir no lado do servidor MQ com os objetos em seu aplicativo JMS e como o JMS o ajuda a obter isso.

Se você deseja certificar-se de que seu aplicativo JMS irá executar bem e de maneira confiável, dê uma olhada em neste artigo.

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.