Nodo JMSOutput

Utilice el nodo JMSOutput para enviar mensajes a destinos JMS.

Este tema contiene las secciones siguientes:

Finalidad

El nodo JMSOutput actúa como productor de mensajes JMS publicar los seis tipos de mensajes definidos en Especificación Java Message Service, versión 1.1. Los mensajes se publican utilizando llamadas de método, que se describen en la especificación JMS.

El nodo JMSOutput se encuentra en la bandeja JMS de la paleta y está representado en el entorno de trabajo mediante el siguiente icono:

Icono de nodo JMSOutput

Utilización del nodo JMSOutput en un flujo de mensajes

El siguiente ejemplo contiene un flujo de mensajes en el que se utiliza el nodo JMSOutput. Consulte este ejemplo para saber cómo se utiliza el nodo JMSOutput. Los ejemplos sólo pueden verse cuando se utiliza el centro de información que está integrado en el Kit de herramientas de Message Brokers.

Los flujos de mensajes que manejan los mensajes que se reciben de las conexiones a proveedores JMS, deben empezar siempre con un nodo JMSInput. Si incluye el nodo JMSOutput en un flujo de mensajes, no será necesario que incluya un nodo JMSInput: pero si no incluye un nodo JMSInput, deberá incluir el nodo MQJMSTransform para dar al mensaje el formato que espera el nodo JMSOutput.

Si está propagando mensajes JMS y creando un flujo de mensajes para utilizarlo como un subflujo, utilice una instancia del nodo JMSOutput como último nodo para crear un terminal de salida para el subflujo.

Control del tipo del mensaje de salida JMS

En el árbol de mensaje JMS, el tipo de mensaje JMS se representa mediante el campo PayloadType de la subcarpeta Message_MetaData. Para controlar el tipo del mensaje JMS que crea el nodo JMSOutput, utilice código ESQL para establecer el valor de la carga útil, tal como se muestra en el ejemplo siguiente:
SET OutputRoot.JMSTransport.Transport_Folders.Message_MetaData.PayloadType=valor de carga útil

Para obtener más información sobre el árbol de mensaje JMS y los valores de carga útil, consulte Representación de mensajes a través del transporte JMS.

Cómo hacer que el cliente de proveedor JMS esté disponible para los nodos JMS

Los servicios configurables están definidos para una serie de JMSProviders. Puede elegir uno de los servicios predefinidos, o bien puede crear un servicio nuevo para un nuevo proveedor, o para uno de los proveedores existentes.

Para mostrar uno o varios servicios configurables definidos, utilice el mandato mqsireportproperties. El ejemplo siguiente visualiza todos los servicios configurables que están disponibles para un intermediario individual:
mqsireportproperties nombreIntermediario -c AllTypes -o AllReportableEntityNames -r 
  • Si desea utilizar el proveedor JMS de WebSphere MQ y ha instalado WebSphere MQ en la ubicación predeterminada del sistema del intermediario, las propiedades ya estarán establecidas y no será necesario realizar ningún cambio.
  • Si desea utilizar el proveedor JMS de WebSphere MQ y ha instalado WebSphere MQ en una ubicación distinta (no la predeterminada), o si desea utilizar algún otro servicio definido, deberá establecer la propiedad jarsURL para identificar la ubicación de los archivos JAR de servicio en el sistema del intermediario.

    Utilice el mandato mqsireportproperties para ver las propiedades del proveedor y el mandato mqsichangeproperties para establecer o modificar las propiedades.

  • Si no se ha definido ningún servicio para el proveedor JMS o si desea crear otro servicio para un proveedor JMS existente, utilice el mandato mqsicreateconfigurableservice para identificar el nuevo servicio y establecer sus propiedades.
  • Cuando configure el nodo, seleccione el servicio apropiado de la lista de servicio predefinidos que se muestra para la propiedad nombre de proveedor JMS o escriba el nombre del nuevo servicio.

Utilización de la Modalidad de destino de mensaje

El nodo JMSOutput actúa como productor de mensajes y da soporte a los siguientes escenarios de mensajes:

Envío de un mensaje de datagrama

Un datagrama es una entidad de datos independiente y autocontenida que lleva información suficiente para direccionarse desde el sistema de origen al de destino, independientemente de intercambios anteriores entre el sistema de origen y el de destino y la red de transporte. En las instrucciones siguientes se describe cómo enviar un mensaje de datagrama:
  1. En e separador Básicas, establezca el destino del mensaje en función del modelo que mensaje que se esté utilizando. Establezca una de las propiedades siguientes en un nombre de objeto administrado JNDI válido:
    • Tema de publicación
    • Cola de destino
  2. Deje el campo Destino de respuesta en blanco.
El nodo resuelve el nombre del objeto administrado JNDI, que se proporciona en el Tema de publicación o en la Cola de destino y envía el mensaje a ese destino JMS.

Envío de un mensaje de respuesta

Es posible que el emisor de un mensaje desee que el destinatario responda a ese mensaje. En este caso, el mensaje de JMSOutput puede tratar el mensaje de salida como una respuesta y direccionarlo según el valor obtenido de la propiedad JMSReplyTo en el mensaje de petición. Puede modificar el valor de la propiedad JMSReplyTo en el MbMessage; por ejemplo, utilizando un nodo Compute o un nodo JavaCompute. Esta acción permite el direccionamiento dinámico de mensajes desde el nodo JMSOutput. El nodo envía el mensaje al nombre de destino JMS que se establece en el campo JMSReplyTo del árbol MbMessage.

El valor de JMSReplyTo del árbol MbMessage representa el nombre del destino JMS que se resuelve en JNDI. Por ejemplo:
queue://QM_mn2/myJMSQueue4
En este caso, el valor es la representación específica del proveedor JMS de un destino JMS para el proveedor JMS de WebSphere MQ.
Si no desea especificar un nombre de destino JMS resuelto, el nodo JMSOutput también puede aceptar un nombre de objeto administrado JNDI en el campo JMSReplyTo. No obstante, el nodo debe resolver un un nombre de objeto administrado a través de JNDI para que el nodo pueda direccionar el mensaje al destino JMS subyacente. En este caso, el valor del campo JMSReplyTo debe tener como prefijo la Serie: jndi:\\. Por ejemplo:
jndi:\\jmsQ4
donde jmsQ4 es el nombre del objeto administrado en JNDI.

La utilización de este método puede afectar el rendimiento, debido a la necesidad de buscar el objeto administrado en JNDI.

Envío de un mensaje de petición

El nodo JMSOutput puede enviar un mensaje a un destino JMS esperando que una respuesta del consumidor de mensajes procese la petición. En las instrucciones siguientes se describe cómo enviar un mensaje de petición:
  1. En e separador Básicas, establezca el destino del mensaje en función del modelo que mensaje que se esté utilizando. Establezca una de las propiedades siguientes en un nombre de objeto administrado en JNDI válido:
    • Tema de publicación
    • Cola de destino
  2. El destino JMSReplyTo en el mensaje de salida puede derivarse del campo JMSReplyTo del árbol MbMessage que se pasa al nodo. También es posible alterar temporalmente este valor por un nombre de objeto administrado en JNDI que se establece en la propiedad de nodo Destino de respuesta.

    Para que el nodo JMSOutput pueda establecer la propiedad JMSReplyTo dinámicamente en el mensaje de salida, deje en blanco el campo Destino de respuesta en el separador Básicas y establezca el valor de JMSReplyTo en MbMessage utilizando un nodo Compute o un nodo JavaCompute.

El nodo busca primero un valor en el campo JMSReplyTo de MbMessage. Si el nodo encuentra el valor, lo pasa al campo JMSReplyTo del mensaje de salida. No obstante, si se ha especificado el campo Destino de respuesta del separador Básicas, este valor altera temporalmente cualquier otro valor que se haya establecido anteriormente en la propiedad JMSReplyTo del mensaje de salida, tras resolver primero el nombre del objeto administrado en JNDI.

El nodo resuelve el nombre del objeto administrado en JNDI, que se proporciona en el Tema de publicación o en la Cola de destino y envía el mensaje a ese destino JMS.

Configuración de transacciones coordinadas

Cuando se incluye un nodo JMSOutput en un flujo de mensajes, el valor que se establece para Modalidad de transacción define si los mensajes se envían bajo punto de sincronismo.

  • Si establece la Modalidad de transacción en Global, el mensaje se envía bajo coordinación de punto de sincronismo externo; es decir, dentro de una unidad de trabajo de WebSphere MQ. Cualquier mensaje enviado posteriormente por un nodo de salida en la misma instancia del flujo de mensajes se coloca bajo punto de sincronismo, a menos que el nodo de salida modifique este valor explícitamente.
  • Si establece la Modalidad de transacción en Local, el mensaje se envía bajo el control de punto de sincronismo local del nodo JMSOutput. Cualquier mensaje enviado posteriormente por un nodo de salida en el flujo, no se pone bajo punto de sincronismo local, a menos que un nodo de salida determinado especifique que el mensaje debe ponerse bajo punto de sincronismo local.
  • Si establece la Modalidad de transacción en Ninguna, el mensaje no se envía bajo punto de sincronismo. Cualquier mensaje enviado posteriormente por un nodo de salida en el flujo, no se pone bajo punto de sincronismo, a menos que un nodo de salida determinado especifique que el mensaje debe ponerse bajo punto de sincronismo.
Cuando desea enviar mensajes bajo punto de sincronismo externo, debe efectuar pasos adicionales de configuración, que deben aplicarse sólo la primera vez que se despliega un nodo JMSOutput o JMSInput en el intermediario para un proveedor JMS determinado:
  • En sistemas distribuidos, el coordinador de punto de sincronización externo para el intermediario es WebSphere MQ. Antes de desplegar un flujo de mensajes en el que la Modalidad de transacción se ha establecido en Global, modifique el archivo .ini del gestor de colas para incluir definiciones adicionales para cada gestor de recursos de proveedor JMS que participe en transacciones coordinadas globalmente:
    • Windows platform En sistemas Windows, si tiene instalado WebSphere MQ Versión 5:
      1. Inicie WebSphere MQ Services.
      2. Pulse con el botón derecho del ratón en el nombre del gestor de colas y pulse Propiedades.
      3. Pulse el separador Propiedades del recurso.
      4. Establezca la propiedad SwitchFile en el valor siguiente:
        dir_instalación/bin/ JMSSwitch.dll  
        XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
        ThreadOfControl=THREAD 
    • Windows platform En sistemas Windows , si tiene instalado WebSphere MQ Versión 6.0:
      1. Inicie WebSphere MQ Explorer.
      2. Pulse con el botón derecho del ratón en el nombre del gestor de colas en el panel izquierdo y pulse Propiedades.
      3. Pulse Gestores de recursos XA en el panel izquierdo.
      4. Establezca la propiedad SwitchFile en el valor siguiente:
        dir_instalación/bin/ JMSSwitch.dll  
        XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
        ThreadOfControl=THREAD 
      Para obtener más información, consulte el manual System Administration Guide del Centro de información en línea de WebSphere MQ Versión 6 o el manual de la Versión 5.3 en página web de la biblioteca de WebSphere MQ.
    • Linux platformUNIX platform En sistemas Linux y UNIX, añada una sección al archivo .ini del gestor de colas para cada proveedor JMS.
      Por ejemplo:
      XAResourceManager:
      Name=Nombre_Proveedor_Jms 
      SwitchFile=/dir_instalación/bin/JMSSwitch.so
      XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
      ThreadOfControl=THREAD
      donde:
      Nombre
      es un nombre definido por la instalación que identifica un gestor de recursos de proveedor JMS.
      SwitchFile
      es la vía de acceso del sistema de archivos a la biblioteca JMSSwitch que se proporciona en el directorio bin del intermediario.
      XAOpenString puede tener los siguientes valores:
      • Contexto inicial es el valor que se establece en la propiedad básica Fábrica de contexto inicial del nodo JMSInput.
      • ubicación JNDI es el valor que se establece en la propiedad básica Ubicación de JNDI del nodo JMSInput. Este valor debe incluir la palabra clave inicial, que es file://, iiop:// o ldap://
      Los parámetros siguientes son opcionales:
      • Principal LDAP coincide con el valor que se establece para el intermediario utilizando los mandatos mqsicreatebroker o mqsichangebroker.
      • Credenciales LDAP coincide con el valor que se establece para el intermediario utilizando los mandatos mqsicreatebroker o mqsichangebroker.
      • Nombre de fábrica de conexión de recuperación es la fábrica de conexión administrada JNDI que se define en el archivo de enlaces. Si no se especifica un valor, se deberá añadir al archivo de enlaces un valor por omisión para recoverXAQCF. En cualquiera de los casos, la fábrica de conexión de recuperación se debe definir como una fábrica de conexión de cola XA para el proveedor JMS que está asociado con la Fábrica de contexto inicial.

      Los parámetros opcionales están separados por coma y son posicionales. Por consiguiente, los parámetros que faltan deben representarse con una coma.

      1. Actualice la variable de entorno CLASSPATH de Java para que el gestor de colas del intermediario incluya una referencia a xarecovery.jar; por ejemplo:
        dir_instalación/classes/xarecovery.jar
      2. Actualice la variable de entorno PATH de Java para que el gestor de colas del intermediario apunte al directorio bin, que es donde está ubicado el archivo de conmutación; por ejemplo:
        dir_instalación/bin

      Para obtener más información, consulte el manual System Administration Guide del Centro de información en línea de WebSphere MQ Versión 6 o el manual de la Versión 5.3 en página web de la biblioteca de WebSphere MQ.

      Para usar el mismo gestor de colas para el intermediario y el proveedor de JMS, asegúrese de que la instalación de WebSphere MQ tiene el nivel mínimo requerido: Versión 5.3 CSD12.

    • z/OS platform En z/OS, el gestor de punto de sincronización externo es RRS (Resource Recovery Services - Servicios de recuperación de recursos). El único proveedor JMS que se soporta en z/OS es JMS de WebSphere MQ. La única opción de transporte que se soporta para JMS de WebSphere MQ en z/OS es la opción de enlace.

      El control de punto de sincronización para el proveedor JMS se gestiona con la coordinación de puntos de sincronismo RRS del gestor de colas del intermediario. No necesita modificar el archivo .ini .

Conexión de los terminales

Conecte el terminal de entrada del nodo JMSOutput al nodo desde el que se direccionan los mensajes de salida.

Conecte el terminal de salida del nodo JMSOutput a otro nodo del flujo de mensajes para procesar adicionalmente el mensaje, procesar errores o enviar el mensaje a un destino adicional.

Terminales y propiedades

Cuando haya colocado una instancia del nodo JMSOutput en un flujo de mensajes, podrá configurarlo; consulte el apartado Configurar un nodo de flujo de mensajes. Las propiedades del nodo se visualizan en la vista Propiedades. Para visualizar las propiedades del nodo en el diálogo Propiedades, efectúe una doble pulsación en el nodo o pulse con el botón derecho del ratón sobre el nodo y pulse Propiedades. Todas las propiedades obligatorias que no tienen un valor predeterminado aparecen con un asterisco.

Los terminales del nodo JMSOutput se describen en la tabla siguiente.
Terminal Descripción
In (de entrada) El terminal de entrada que acepta un mensaje para que lo procese el nodo.
Failure (de anomalías) El terminal de salida al que se direcciona el mensaje si se produce un error. Aunque esté establecida la propiedad Validación, los mensajes propagados a este terminal no se validan.
Out (de salida) El terminal de salida al que se direcciona el mensaje si se recupera satisfactoriamente de la cola de WebSphere MQ.
Catch (de captación) El terminal de salida al que se direcciona un mensaje si se genera una excepción en sentido descendente y después este nodo la capta.

Las tablas siguientes describen las propiedades de nodo. La columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco si tiene que entrar un valor cuando no hay definido ningún valor predeterminado), la columna con la cabecera C indica si la propiedad es configurable (puede cambiar el valor cuando añade el flujo de mensajes al archivo BAR para desplegarlo).

Las propiedades de descripción del nodo JMSOutput están descritas en la tabla siguiente.
Propiedad O C Valor por omisión Descripción
Nombre de nodo No No El tipo de nodo, JMSOutput El nombre del nodo.
Descripción corta No No   Descripción breve del nodo.
Descripción larga No No   Texto que describe la finalidad del nodo en el flujo de mensajes.
En la tabla siguiente se describen las propiedades de Conexión JMS del nodo JMSOutput.
Propiedad O C Valor por omisión Descripción
Fábrica de contexto inicial com.sun.jndi.fscontext. RefFSContextFactory Esta propiedad es el punto de partida para un espacio de nombres JNDI. Una aplicación JMS utiliza el contexto inicial para obtener y buscar la fábrica de conexiones y los objetos de cola y tema para el proveedor JMS.

Entre un valor de Fábrica de contexto inicial. Una aplicación JMS utiliza el contexto inicial para obtener y buscar los objetos JNDI administrados para el proveedor JMS. El valor predeterminado es com.sun.jndi.fscontext.RefFSContextFactory, que define la fábrica de contexto inicial basada en archivo para el proveedor JMS de WebSphere MQ.

Para identificar el nombre de la Fábrica de contexto inicial para el proveedor JMS, consulte la documentación del proveedor JMS.

Enlaces JNDI de ubicación No   Vía de acceso de sistema o ubicación LDAP para el archivo de enlaces. El archivo de enlaces contiene definiciones para los objetos administrados en JNDI que utiliza el nodo JMSOutput.
Al entrar un valor para Enlaces JNDI de ubicación, asegúrese de que satisface las indicaciones siguientes:
  • Cree el archivo de enlaces antes de desplegar un flujo de mensajes que contenga un nodo JMSOutput.
  • No incluya en este campo el nombre del archivo de enlaces.
  • Si ha especificado una ubicación LDAP que necesite autenticación, configure por separado el principal (id de usuario) LDAP y los credenciales (contraseña) LDAP. Estos valores se configuran a nivel de intermediario. Para obtener información sobre la configuración de estos valores, consulte los apartados Mandato mqsicreatebroker y Mandato mqsichangebroker.
  • El valor de la cadena de caracteres debe incluir la palabra clave que va al principio, que es una de las siguientes:
    • file://
    • iiop://
    • ldap://

Para obtener más información sobre cómo construir el archivo de enlaces de objetos administrados en JNDI, consulte la documentación que se proporciona con el proveedor JMS.

Nombre de fábrica de conexiones No   El nombre de la fábrica de conexión que utiliza el nodo JMSOutput para crear una conexión con el proveedor JMS. Este nombre ya debe existir en el archivo de enlaces.
En la tabla siguiente se describen las propiedades Avanzadas del nodo JMSOutput.
Propiedad O C Valor por omisión Descripción
Nuevo ID correlación No   Si se necesita el nodo JMSOutput para generar un nuevo ID de correlación para el mensaje, seleccione Nuevo ID de correlación. Si se deja el recuadro de selección sin seleccionar, el ID de correlación del mensaje de salida se toma del campo JMSCorrelationID en la sección JMSTransport_Header_Values del árbol de mensaje.
Modalidad de transacción No Ninguno Esta propiedad controla si el mensaje de entrada se recibe bajo punto de sincronismo.
  • Seleccione Ninguno si el mensaje de salida se va a tratar como no persistente. Si selecciona este valor, el mensaje se envía utilizando una sesión JMS sin transacciones que se crea utilizando el distintivo Session.AUTO_ACKNOWLEDGE.
  • Seleccione Local si el nodo de entrada que ha recibido el mensaje debe coordinar la confirmación o la restitución de los mensajes JMS enviados por el nodo JMSOutput, junto con cualquier otro recurso, por ejemplo DB2 o WebSphere MQ, que realice trabajo en el flujo de mensaje. Si selecciona este valor, el nodo utiliza una sesión JMS con transacciones.
  • Seleccione Global si el nodo JMSOutput debe participar en la transacción de flujo de mensajes global que gestiona el coordinador de puntos de sincronismo externo del intermediario. El coordinador de punto de sincronismo es el gestor de colas del intermediario en los sistemas distribuidos y RR (Resource Recovery Services) en z/OS. Si selecciona este valor, los mensajes recibidos por el nodo se coordinan globalmente utilizando una sesión XA JMS.
Modalidad de entrega No No persistente Esta propiedad controla la modalidad de persistencia que utiliza un proveedor JMS para un mensaje. Los valores válidos son:
  • Automático: se hereda la modalidad del mensaje de entrada
  • Persistente: el mensaje sobrevive si en el proveedor JMS se produce una anomalía del sistema
  • No persistente: el mensaje se pierde si en el proveedor JMS se produce una anomalía del sistema
Caducidad del mensaje (ms) No 0 Esta propiedad controla la longitud de tiempo, en milisegundos, para la cual el proveedor JMS conserva el mensaje JMS de salida. El valor predeterminado, 0 se utiliza para indicar que el mensaje no debe caducar.
Prioridad del mensaje No 4 Esta propiedad asigna importancia relativa al mensaje y lo puede utilizar para la selección de mensajes una aplicación cliente JMS receptora o un nodo JMSOutput.

Los valores válidos para la prioridad de mensaje son de 0 (prioridad más baja) a 9 (prioridad más alta). El valor predeterminado es 4, que indica prioridad media. Las prioridades en el rango de 0 a 4 están relacionadas con la entrega típica. Las prioridades en el rango de 5 a 9 están relacionadas con las graduaciones de entrega urgente.

Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. Reservados todos los derechos.
Última actualización : 2009-02-16 14:30:35

ac24830_