Para ver cómo funciona IBM MQ, se te guiará a lo largo de la creación y la configuración de un gestor de filas. Después, lo conectarás a una aplicación.
Después de completar el tutorial, serás capaz de enviar mensajes y de recibir mensajes de una fila.
Es posible descargar, instalar y ejecutar el gestor de filas de IBM MQ (servidor) de diferentes maneras:
- En un contenedor.
- En IBM Cloud.
- En varios sistemas operativos: Linux/Ubuntu o Windows (este tutorial). Para MacOS, utiliza MQ en contenedores.
Objetivos de aprendizaje
Después de completar este tutorial, comprenderás un poco estos conceptos:
- Gestores de filas de IBM MQ
- Filas de IBM MQ
- Mensajería de punto a punto
Requisitos Previos
Para realizar los pasos de este tutorial tendrás que descargar e instalar estos requisitos previos:
- Una máquina de Windows 10 con privilegios administrativos
- IBM MQ Advanced for Developers
- Script de configuración de IBM MQ (MQSC)
Tiempo estimado
Para completar este tutorial hacen falta aproximadamente 30-45 minutos.
Pasos
- Descarga IBM MQ
- Instala IBM MQ
- Crea e inicia un gestor de filas
- Configura tu gestor de filas
- Crea un usuario y un grupo para ejecutar aplicaciones cliente de MQ
- Pon y obtén mensajes de una fila
Paso 1. Descarga IBM MQ
Obtén IBM MQ Advanced for Developers para Windows. Este es un archivo grande, así que tardará un rato.
Descomprime el archivo descargado y toma nota de la ubicación de la carpeta de tu servidor de MQ.
Paso 2. Instala IBM MQ
Importante: Si el ID de usuario administrador con el que se inició sesión en Windows tiene más de 12 caracteres, no será posible completar este tutorial. Cierra y vuelve a iniciar sesión como un nombre de usuario administrador que tenga menos de 12 caracteres.
Abre ‘como administrador’ la interfaz de tu línea de comando. Para ejecutar algunos de los comandos de este tutorial, serán necesarios privilegios elevados.
Crea el comando que instalará MQ en tu máquina. Para hacerlo, necesitarás tres cosas:
La ruta de la ubicación del archivo IBM MQ.msi del paquete instalador de MQ, por ejemplo:
C:\mqadv_dev914_windows\MQServer\MSI\IBM MQ.msi
.La ruta a la carpeta en la que MQ puede crear una bitácora de texto sin formato para la instalación que incluya el nombre del archivo, por ejemplo:
C:\Users\username\install.log
.La ruta de la ubicación para el archivo de parámetros predeterminados para la instalación de MQ, llamado
Response.ini
, por ejemplo:C:\Users\username\Downloads\mqadv_dev914_windows\MQServer\Response.ini
.
Edita este comando reemplazando las rutas de ejemplo por las tres rutas anteriores de ubicaciones de archivos y, después, ejecútalo en tu línea de comando:
start /wait msiexec /i "C:\Users\username\Downloads\mqadv_dev914_windows\MQServer\MSI\IBM MQ.msi" /l*v "C:\Users\username\install.log" /q RESPONSE="C:\Users\username\Downloads\mqadv_dev913_windows\MQServer\Response.ini" TRANSFORMS="1033.mst" AGREETOLICENSE="yes" ADDLOCAL="Server"
La instalación se realizará en segundo plano. Para realizar un seguimiento del progreso de la instalación, comprueba la bitácora que especificaste.
Para comprobar si la instalación tuvo éxito, imprime el nivel de error:
echo %ERRORLEVEL%
Si todo fue bien, aparecerá el código 0.
Si obtienes un código diferente y parece que la instalación falló, comprueba primero si ejecutaste tu herramienta de línea de comando ‘como administrador’. Si no es así, abre otra ventana de línea de comando en modo ‘ejecutar como administrador’ y vuelve a probar el comando.
Cuando la instalación se complete correctamente, aparecerá un nuevo icono en tu barra de tareas, ya que MQ se inicia automáticamente después de la instalación.
Si la instalación no tuvo éxito, comprueba la bitácora para descubrir lo que ocurrió:
notepad C:\Users\username\install.log
Si la instalación silenciosa falló, es posible instalar MQ haciendo doble clic Setup.exe en la carpeta MQServer para iniciar el Launchpad que guiará por los pasos de la instalación.
Paso 3. Crea e inicia un gestor de filas
En la mensajería de punto a punto, el principal objeto de MQ en el que están interesadas las aplicaciones es la fila. Antes de crear una fila, es necesario crear un gestor de filas. El gestor de filas de IBM MQ es el servidor anfitrión de la fila.
Si estás instalando MQ por primera vez, la ruta de instalación de MQ será: C:\Program Files\IBM\MQ
.
En tu línea de comando, cambia los directorios a la carpeta bin de tu instalación de MQ, por ejemplo:
cd "C:\Program Files\IBM\MQ\bin"
Ahora, ingresa:
setmqenv -s
Ahora es posible enviar comandos de IBM MQ sin tener que estar en la carpeta bin de la instalación de MQ.
Es posible mostrar las rutas de instalación y datos de MQ ejecutando el comando dspmqver
«mostrar versiones de MQ» en la línea de comando:
dspmqver
Deberías ver un resultado como éste:
Para empezar a poner y recibir mensajes, es necesario una fila. Las filas residen en los gestores de filas, así que, primero es necesario crear un gestor de filas. En tu línea de comando, escribe:
crtmqm QM1
Deberías ver un resultado como éste:
Se crea, pero no se inicia el gestor de filas. Inicia tu gestor de filas:
strmqm QM1
Deberías ver un resultado como éste:
Paso 4. Configura tu gestor de filas
Hemos proporcionado un script para ayudarte a crear objetos de MQ para tu gestor de filas. Obtendremos este script de GitHub mediante un comando curl. Asegúrate de que ejecutas este comando desde una carpeta en la que tienes permiso para escribir, como tu directorio inicial.
curl -o mq-dev-config.mqsc https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/mqsc/mq-dev-config.mqsc
Ejecuta este comando para crear los objetos de MQ y añadir la ubicación en la que guardó el archivo script, por ejemplo:
runmqsc QM1<"C:\Users\user\Downloads\mq-dev-config.mqsc"
Cuando hayas acabado, verás una salida parecida a esta:
¿Estás ejecutando Windows 10 Enterprise?
Si el comando runmqsc
falla, y estás ejecutando Windows 10 Enterprise, es probable que falle porque el usuario de tu dominio no está registrado como usuario local en tu máquina. Para solucionar este problema, es posible ejecutar el Gestor de Usuarios y Grupos Locales:
lusrmgr.msc
Desde ahí, deberías crear un usuario y añadirlo al grupo mqm que se creó durante la instalación de MQ. Cuando hayas hecho eso, ejecuta el comando runmqsc como ese usuario:
runas /user:THE_USER "runmqsc QM1<\"C:\Users\user\Downloads\mq-dev-config.mqsc\""
Ahora, todo debería funcionar. El script crea objetos, como una fila, un canal y un receptor. Las aplicaciones tienen que ser conscientes de ellos al intentar conectarse a tu gestor de filas.
Paso 5. Crea un usuario y un grupo para ejecutar aplicaciones cliente de MQ
El papel de un usuario se define según los grupos a los que pertenece. Normalmente queremos que las aplicaciones de MQ se ejecuten desde una cuenta sin privilegios de administrador. Tu cuenta de usuario es una cuenta de administrador de MQ.
Las aplicaciones cliente tienen que estar autorizadas para realizar acciones como abrir y cerrar filas, poner y obtener mensajes, etc. El cliente se conecta al gestor de filas por medio de un canal. Para hacerlo, es necesario conectarse desde una cuenta de usuario que pertenezca a un grupo cuyos miembros están autorizados a utilizar el canal.
En tu herramienta Windows Computer Management, en usuarios y grupos locales,
- Crea un grupo de Windows
mqclient
- Crea una
app
usuario de Windows que sea miembro del grupomqclient
. Pon como contraseñapassw0rd
. El usuario cambiará esta contraseña la próxima vez que inicie sesión.
Ahora es posible añadir la autoridad al grupo mqclient
para que sus miembros puedan conectarse al gestor de filas, y poner y obtener mensajes de una fila.
Ejecuta este comando:
setmqaut -m QM1 -t qmgr -g mqclient +connect +inq
Después, ejecuta este comando:
setmqaut -m QM1 -n DEV.** -t queue -g mqclient +put +get +browse +inq
Qué has hecho hasta ahora
Instalaste IBM MQ en tu PC Windows, creaste un gestor de filas y ejecutaste un script de MQSC para crear objetos de MQ. Ahora, estás listo para crear y ejecutar aplicaciones de MQ. MQ está utilizando los recursos y la conectividad de tu computadora anfitriona.
Establecer los siguientes objetos y permisos:
Gestor de filas QM1
Fila DEV.QUEUE.1
- Canal:
DEV.APP.SVRCONN
- Receptor:
DEV.LISTENER.TCP
en el puerto 1414
El usuario app
, que es un miembro del grupo mqclient
, tiene permiso para utilizar el canal DEV.APP.SVRCONN
para conectarse al gestor de filas QM1. El usuario/aplicación puede poner y obtener mensajes de la fila DEV.QUEUE.1
.
Paso 6. Pon y obtén mensajes de una fila
Ahora tenemos una instalación de MQ que nos permite conectarlo a nuestras filas preestablecidas y enviar mensajes, así que, vamos a enviar algunos mensajes de práctica.
Utilizaremos un programa de muestra para poner mensajes, amqsputc
, que se incluye en la instalación del MQ. Es necesario establecer un par de variables de entorno.
set MQSERVER=DEV.APP.SVRCONN/TCP/localhost(1414)
set MQSAMP_USER_ID=app
MQSERVER
especifica el punto final del gestor de filas. MQSAMP_USER_ID
especifica la cuenta que tiene permiso para ejecutar los programas de muestra que se incluyen con la instalación de MQ.
Cámbialo al directorio en el que están las muestras:
cd C:\Program Files\IBM\MQ\tools\c\Samples\Bin64
No hace falta que inicies sesión como el usuario app
. Solo es necesario ejecutar este comando para poner un mensaje:
amqsputc DEV.QUEUE.1 QM1
Esto te debería solicitar la contraseña de la cuenta de usuario app
. Ingresa passw0rd, y después tendrás la opción de poner uno o más mensajes, que se separan pulsando INTRO, en la fila DEV.QUEUE.1
. Cuando hayas acabado de poner mensajes, pulsa INTRO dos veces para ponerlos en la fila.
Deberías ver una salida similar a esta:
Finalmente, podemos obtener los mensajes de nuestra fila. Ejecuta este comando:
amqsgetc DEV.QUEUE.1 QM1
Ingresa la contraseña del usuario app
y deberías recibir tus mensajes. El programa espera 15 segundos, por si llegan nuevos mensajes, y luego sale. El mensaje devuelto debería parecerse a este:
Resumen
En este tutorial, configuraste el gestor de filas que se ejecuta en tu máquina Windows para las conexiones entrantes de clientes. La aplicación amqsputc
abrió una fila y puso mensajes en ella. La aplicación amqsgetc
obtuvo mensajes de la misma fila.
Cuando empieces a desarrollar tus propias aplicaciones del cliente para conectarlas con el gestor de filas, seguirás estos pastos:
- Configura la conexión para el gestor de filas.
- Abre una fila.
- Pon un mensaje en la fila.
- Obtén el mensaje de la fila.
- Cierra la conexión con el gestor de filas.
Este proceso demuestra el estilo de mensajería de punto a punto.
La aplicación amqsputc
funciona como el punto productor cuando pone un mensaje. La aplicación amqsgetc
actúa como el punto consumidor cuando obtiene el mensaje de la fila.
En IBM MQ, el gestor de filas es efectivamente la parte del servidor del sistema, y las aplicaciones que se conectan a él son los clientes.
Normalmente, el administrador es el que cuida del servidor de MQ donde se definen todos los objetos de MQ y ocurre todo el direccionamiento de mensajes. Las aplicaciones cliente son creadas por los desarrolladores e IBM MQ brinda bibliotecas de clientes que los desarrolladores deben incluir en sus aplicaciones. Esas bibliotecas, también llamadas clientes de MQ, atienden y utilizan los objetos de MQ que los administradores han creado en el lado del servidor de MQ. En escenarios más complejos, las bibliotecas de MQ hacen la mayoría del trabajo pesado por ti, así que es necesario aprender cómo usarlas.
Para que la mensajería funcione, hay que configurar los lados del servidor y del cliente.
Cuando empieces a desarrollar por primera vez aplicaciones cliente de MQ, te ayudará tener acceso a tu propio gestor de filas y a una fila, para probar tu aplicación cliente con ellos. La instalación de IBM MQ en tu máquina Windows te proporciona acceso a un gestor de filas y muchas opciones para configurar objetos de MQ mientras comienzas a desarrollar tu propia aplicación cliente.
Próximos pasos
¿Qué es lo siguiente? Escribe tu primera aplicación de JMS.
Aviso
El contenido aquí presentado fue traducido de la página IBM Developer US. Puede revisar el contenido original en este link.