Trabajo con casos de WebSphere MQ Everyplace de ejemplo

El conjunto de archivos de ejemplo que se adjuntan a este tema proporcionan un inicio rápido para conectar WebSphere MQ Everyplace a un intermediario de WebSphere Business Integration Event Broker. Permiten:

Puede modificar cualquiera de los ejemplos que se proporcionan. Posteriormente deberá compilar el código fuente de Java.

En los pasos siguientes se explica cómo ejecutar el ejemplo. Las estructuras de directorios descritas dan por supuesto que se utiliza Windows. En otras plataformas deberá cambiar las vías de acceso como corresponda.

  1. Establezca la CLASSPATH para cada sistema para el que se ejecutarán programas que se comunican con WebSphere MQ Everyplace dentro de WebSphere Business Integration Event Broker y con WebSphere MQ Everyplace (autónomo). Es necesario añadir:
    • dir_instalación\classes\mqimqe.jar;
    • dir_instalación\classes\MQeDevice.jar;
    • dir_instalación\classes\MQeExamples.jar;
    • dir_instalación\classes\MQeGateway.jar;
    • dir_instalación\classes\MQeMQBridge.jar;

    En algunas versiones de Windows, existe un límite de 255 caracteres en un valor de CLASSPATH. Para evitar topar con esta restricción, puede asignarlas a una nueva variable de entorno, por ejemplo MQEPATH y añada %MQEPATH%; a la CLASSPATH.

  2. Copie los archivos de ejemplo. Pulse el botón derecho del ratón en cada un de los enlaces siguientes y pulse Seleccionar destino.... Elija el directorio en el que desea almacenar los archivos.
    1. Copie los siguientes archivos .ini:
    2. Copie los siguientes archivos de origen en el mismo directorio:
    3. Compile los archivos de origen Java.
  3. Cree gestores de colas de WebSphere MQ Everyplace en el cliente de WebSphere MQ Everyplace. El nombre de archivo es sensible a las mayúsculas y minúsculas; escríbalo exactamente igual a como aparece.

    En el indicador de mandatos, escriba:

    java examples.install.CreateQueueManager

    En el recuadro Archivo de configuración, busque y seleccione el archivo ClientQM1.ini , que se suministra en el directoriodir_instalación\examples\MQe. Establezca el directorio para las colas x:\ClientQM1 (dondex es la letra de unidad que desea). Pulse Aceptar.

    Se crea un gestor de colas de cliente WebSphere MQ Everyplace con el nombre ClientQM1, con un registro ubicado en x:\ClientQM1\Registry.

  4. Cree el gestor de colas de servidor WebSphere MQ Everyplace dentro de WebSphere Business Integration Event Broker. El nombre de archivo es sensible a las mayúsculas y minúsculas; escríbalo exactamente igual a como aparece.

    En el indicador de mandatos, escriba:

    java examples.install.CreateQueueManager

    En el recuadro Archivo de configuración, desplácese y seleccione el archivo ServerQM.ini , que se suministra en el directorio dir_instalación\examples\MQe. Establezca el directorio para las colas en x:\ServerQM1. Pulse Aceptar.

    Se crea un gestor de colas de servidor deWebSphere MQ Everyplace con el nombre ServerQM1, con un registro ubicado en x:\ServerQM1\Registry.

    Si examina el archivo ServerQM1.ini de ejemplo, puede ver que el escucha está a la escucha en la puerta 8081. Este valor se ignora en la creación del gestor de colas. Más adelante en la configuración, si elige que el nodo MQeInput tome sus valores de un archivo de configuración, se utilizará este número de puerta.

    Si obtiene un error al crear el gestor de colas del servidor con texto:
    com.ibm.broker.mqimqe.examples.rule.AttributeRule
    compruebe que ha indicado correctamente dir_instalación\classes\mqimqe.jar en la CLASSPATH.
  5. Configure flujos de mensajes. Puede añadir nodos de WebSphere MQ Everyplace a flujos de mensajes existentes o crear nuevos flujos. Cambie a la perspectiva Desarrollo de aplicaciones de intermediario. Añada los nodos al flujo de mensajes. Para la mensajería punto a punto (que no es publicación/suscripción), debe incluir un nodo MQeInput y un nodo MQeOutput. Para la mensajería de publicación/suscripción, debe incluir un nodo MQeInput y un nodo Publication.
    Configuración del nodo MQeInput
    Para este ejemplo, debe establecer sólo el Nombre de cola (en la pestaña General). Cada nodo MQeInput debe tener un nombre de cola distinto. En el paso 8 siguiente, el ejemplo utiliza el nombre de cola, MQeInputQ1.

    Es posible que también desee hacer otros cambios en la configuración (por ejemplo, configurar el nivel de rastreo) aunque no es necesario para ejecutar estos scripts.

    Configuración del nodo MQeOutput
    Compruebe que la Modalidad de destino (en la pestaña Avanzadas) sea Lista de destinos. Deje los demás campos en blanco.
    Configuración del nodo Publication
    No es necesario efectuar ninguna acción.
  6. Difusión al flujo de mensajes.

    Guarde el flujo de mensajes y compruebe que no tiene errores. Añada el flujo de mensajes a un archivo bar y difúndalo al intermediario-

    Compruebe que la difusión ha sido satisfactoria en el registro de sucesos. Puede esperar ver los mensajes BIP4040I y BIP2056I.

    • El gestor de colas del cliente se inicia cuando se inicia el cliente.
    • El gestor de colas del servidor sólo se inicia cuando se ejecuta un nodo MQeInput y se difunde en un flujo donde se ejecuta un intermediario de WebSphere Business Integration Event Broker.
    • Al difundir un flujo de mensajes punto a punto (MQeInput a MQeOutput) también se inicia el gestor de colas de servidor de WebSphere MQ Everyplace.
  7. Configure los gestores de colas de WebSphere MQ Everyplace.

    Compile y ejecute los programas SetupMQeExample1 y SetupMQeExample2 para configurar los gestores de colas de WebSphere MQ Everyplace.

    • SetupMQeExample1 crea una ruta para que el gestor de colas del cliente pueda ponerse en contacto con el gestor de colas del servidor.
    • SetupMQeExample2 crea una cola en el gestor de colas del servidor llamado Inbox que puede utilizarse en los ejemplos para devolver mensajes.

    Estos programas aceptan los parámetros siguientes. SetupMQeExample1 requiere los cinco parámetros en la secuencia indicada. SetupMQeExample2 sólo requiere los dos primeros.

    1. El nombre del gestor de colas de WebSphere MQ Everyplace (ServerQM1 en este ejemplo).
    2. La vía de acceso del archivo de configuración del cliente de WebSphere MQ Everyplace (ClientQM1.ini en este ejemplo).
    3. La dirección IP del servidor de WebSphere MQ Everyplace (1.23.45.678 en este ejemplo).
    4. La puerta en la que está a la escucha el servidor de WebSphere MQ Everyplace. El número de puerta debe coincidir con la puerta especificada en la pestaña Escucha del diálogo de propiedades del nodo MQeInput. Por omisión, el número de puerta en las propiedades del nodo MQeInput es 8081.
    5. El nombre del gestor de colas de WebSphere MQ que aloja el intermediario de WebSphere Business Integration Event Broker (por ejemplo, WBRK_QM).
    Por ejemplo, en el indicador de mandatos escriba:
    java SetupMQeExample1 ServerQM1 ClientQM1.ini 1.23.45.678 8081 WBRK_QM
  8. Envíe mensajes a través de flujos de mensajes.
    • Para mensajes punto a punto, utilice el programa SendMessages. Éste envía un mensaje utilizando la clase MQeMsgObj y la clase MQeMbMsgObj.
    • Para mensajes de publicación/suscripción, utilice el programa SendPubSubMessages. Este programa suscribe, publica, lee el mensaje y anula la suscripción.
    Los dos programas aceptan los cinco parámetros siguientes, que deben estar en el orden que se muestra a continuación:
    1. El nombre del gestor de colas WebSphere MQ Everyplace (ServerQM1 en este ejemplo).
    2. La vía de acceso del archivo de configuración del cliente de WebSphere MQ Everyplace (ClientQM1.ini).
    3. El nombre del gestor de colas de WebSphere MQ que aloja el intermediario de WebSphere Business Integration Event Broker (por ejemplo, WBRK_QM).
    4. El nombre de la cola puente de WebSphere MQ que recibe la propiedad de entrada (la cola indicada en el nodo MQInput Nombre de cola; por ejemplo, MQeInputQ1).
    5. El nombre de la cola de WebSphere MQ Everyplace en la que desea recibir los mensajes devueltos desde el intermediario. El código de ejemplo crea una cola llamada Inbox aunque si ya tiene definida una cola de WebSphere MQ Everyplace puede especificarla.
      Si esta cola no existe, recibirá la excepción:
      The message retrieved did not contain all of the expected fields.
      Si se produce esta excepción pero la cola se ha creado, significa que se la alcanzado el límite de intentos de recuperación y no se puede recuperar ningún mensaje.
    Por ejemplo, para enviar mensajes punto a punto, escriba lo siguiente en el indicador de mandatos:
    java SendMessages ServerQM1 ClientQM1.ini WBRK_QM MQeInputQ1 Inbox

    Si envía un mensaje al intermediario que se ha creado mediante un objeto MQeMsgObject (cuando todos los campos se pasan al intermediario), la salida es parecida a:

    Reading message from queue
    Message:         This is the payload
    Own message tag: My own tag with some data

    Si envía un mensaje al intermediario que se ha creado mediante un objeto MQeMbMsgObject (cuando sólo se envían los campos compatibles dentro del intermediario), la salida es parecida a:

    Reading message from queue
    Message:         This is the payload

    Por ejemplo, para enviar mensajes de publicación/suscripción, escriba lo siguiente en un indicador de mandatos:

    java SendPubSubMessages ServerQM1 ClientQM1.ini WBRK_QM MQeInputQ1 Inbox

    Si los mensajes se envían y reciben correctamente, debería ver una salida parecida a la siguiente:

    Started queue manager: ClientQM1
    Subscribing to the topics:
    climate
    humidity
    temperature
    Put message to QM/queue: WBRK_QM/MQeInputQ2
    Publishing message to topic 'climate'
    Reading message from queue
    Topic:  climate
    Message: sunny
    un-subscribing from the topics:
    climate
    humidity
    temperature
    Put message to QM/queue: WBRK_QM/MQeInputQ2

    (donde MQeInputQ2 es el nombre del nodo MQeInput utilizado).

    Si, después de los intentos de ejemplo para transferir un mensaje al gestor de colas del intermediario y la cola puente de WebSphere MQ, aparece la siguiente excepción de WebSphere MQ Everyplace:
    java.net.ConnectException: Connection refused
    debe comprobar lo siguiente:
    1. El intermediario se ha iniciado (mqsistart nombreintermediario).
    2. El número de puerta que se ha especificado al ejecutar SetupMQeExample1 coincide con el número de puerta que se ha especificado en la pestaña Escucha del nodo MQeInput.
    3. Hay un escucha ejecutándose en dicho número de puerta (para comprobarlo, escriba netstat en el indicador de mandatos).
    4. Ha especificado un nombre de cola puente de WebSphere MQ Everyplace. (La difusión parece ser correcta aunque no haya establecido este parámetro.)

Conceptos relacionados
WebSphere MQ Mobile Transport

Tareas relacionadas
Protección de recursos de WebSphere MQ Everyplace
Creación de un flujo de mensajes
Difusión de aplicaciones de flujos de mensajes
Comprobación de los resultados de la difusión

Referencia relacionada
Nodo MQeInput
Nodo MQeOutput