Escribe y ejecuta tu primera aplicación de IBM MQ JMS

JMS significa Servicio de Mensajes de Java. JMS es un estándar que define cómo es posible acceder a sistemas de mensajería empresariales desde programas de Java. La API de JMS es implementada por proveedores de servicios de mensajería, como IBM MQ, para permitir que las aplicaciones cliente de JMS accedan al servicio de mensajería del proveedor.

En este tutorial, pondrás un mensaje que envíe tus datos a una fila, y la aplicación consumidora los obtendrá de una fila. Utilizarás la API de JMS para conectarte a tu proveedor de mensajería, que en este caso es IBM MQ.

Requisitos Previos

Cómo desarrollar una aplicación de punto a punto con JMS e IBM MQ

Tu aplicación tiene que ser capaz de hacer lo siguiente:

  • Conectarse al gestor de filas
  • Abrir una fila
  • Poner un mensaje
  • Obtener un mensaje
  • Cerrar la fila
  • Desconectarse del gestor de filas

Asumimos que estos objetos de MQ se establecen en el servidor de MQ al que te estás conectado:

  • Gestor de filas QM1
  • Fila DEV.QUEUE.1
  • Canal DEV.APP.SVRCONN
  • Puerto 1414

Si estás usando tus propios objetos, será necesario ajustar estos nombres en consecuencia. O bien, es posible ir a un tutorial Preparado, Listo, Conéctate para empezar.

Si ya realizaste un tutorial Preparado, Listo, Conéctate, tu gestor de filas ya debería estar configurado correctamente. Si no es así, será necesario configurar la autorización para que el gestor de filas acepte la conexión desde la aplicación por medio de un canal con nombre, y la aplicación tiene que estar autorizada para poner y obtener mensajes de la fila.

Si ya tienes una aplicación de JMS, pero quieres obtener ayuda para el rendimiento o la depuración, lee este artículo.

Configura tu entorno

En el primer paso, te guiamos a lo largo de los requisitos previos de la instalación y configuración.

  1. Crea un directorio para guardar los archivos necesarios para la muestra, por ejemplo, en tu directorio inicial:

     mkdir MQClient
    
  2. Desde la carpeta MQClient, descarga el archivo com.ibm.mq.allclient.jar con 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. Desde la carpeta MQClient, descarga el archivo de la API de JMS con 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. Si no tienes la versión 8 de Java JDK, es posible descargarla desde aquí. Selecciona la descarga adecuada para tu plataforma e instálala.

Descarga la aplicación de muestra de JMS de punto a punto

Obtén la muestra de GitHub, guárdala en tu máquina local y revisa algunas de las construcciones esenciales de JMS y dónde es posible agregar el anfitrión, el puerto, el canal y los detalles de la fila para que tu muestra pueda conectarse al administrador de filas.

  1. En tu directorio MQClient, crea la siguiente estructura de directorios com/ibm/mq/samples/jms.

    En Windows:

     mkdir -p com\ibm\mq\samples\jms
    

    En Linux:

     mkdir -p com/ibm/mq/samples/jms
    
  2. Desde el directorio MQClient/com/ibm/mq/samples/jms, descarga la muestra JmsPutGet.java de GitHub concurl:

     curl -o JmsPutGet.java https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/jms/JmsPutGet.java
    
  3. Edita el archivo JMSPutGet.java. Reemplaza las variables anfitrión, puerto y contraseña de la aplicación para que coincidan con la configuración de tu gestor de filas.

     // Crea variables para la conexión a MQ
     private static final String HOST = "_YOUR_HOSTNAME_"; // Nombre o dirección IP del anfitrión
     private static final int PORT = 1414; // Puerto del receptor para tu gestor de filas
     private static final String CHANNEL = "DEV.APP.SVRCONN"; // Nombre de canal
     private static final String QMGR = "QM1"; // Nombre del gestor de filas
     private static final String APP_USER = "app"; // Nombre de usuario que la aplicación utiliza para conectarse a MQ
     private static final String APP_PASSWORD = "_APP_PASSWORD_"; // Contraseña que la aplicación utiliza para conectarse a MQ
     private static final String QUEUE_NAME = "DEV.QUEUE.1"; // Fila que la aplicación utiliza para poner y obtener mensajes
    

Ahora deberías ser capaz de compilar la aplicación y ejecutarla.

Compila y ejecuta tu aplicación de JMS

Aquí es donde podrás finalmente conectar tu aplicación al gestor de filas, y poner y obtener mensajes de la fila.

Para compilar la muestra, ve a tu directorio de MQClient.

Usa javac para complicar tu aplicación.

  1. Desde el directorio MQClient, utiliza javac para compilar tu aplicación.

    En 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
    

    En 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 que la muestra está compilada, ejecuta uno de estos comandos. Ahora deberías ver un archivo .class junto con el archivo .java.

    En Windows, ejecuta el comando dir:

     dir com\ibm\mq\samples\jms\
    

    En Linux, ejecuta el comando ls:

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

    Ahora deberías ver un archivo .class junto con el archivo .java: Salida del comando ls

  2. Ejecuta tu aplicación.

    En 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
    

    En 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
    

    Deberías ver un resultado como éste:

Salida de la ejecución de la aplicación de JMS

Próximos pasos

¡Felicidades! Editaste y compilaste tu primera aplicación de JMS, enviaste un mensaje a una fila de IBM MQ y obtuviste ese mensaje de la fila. Configuraste también tu entorno con todo lo necesario para desarrollar con JMS e IBM MQ.

Tienes conocimientos básicos sobre lo que va a lograr por el lado del servidor de MQ con los objetos de tu aplicación de JMS, y cómo JMS te ayuda a lograr eso.

Si quieres asegurarte de que tu aplicación de JMS va a tener un comportamiento bueno y confiable, echa un vistazo a este artículo.

Aviso

El contenido aquí presentado fue traducido de la página IBM Developer US. Puede revisar el contenido original en este link.