Nodo JMSInput

Utilice el nodo JMSInput para recibir mensajes de destinos JMS. A los destinos JMS se accede mediante una conexión a un proveedor JMS.

Este tema contiene las secciones siguientes:

Finalidad

El nodo JMSInput actúa como consumidor de mensajes JMS y puede recibir los seis tipos de mensajes definidos en Especificación Java Message Service, versión 1.1. Los mensajes se reciben utilizando llamadas de método, que se describen en la especificación JMS.

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

Icono de nodo JMSInput

Utilización del nodo JMSInput en un flujo de mensajes

El siguiente ejemplo contiene un flujo de mensajes en el que se utiliza el nodo JMSInput. Este es un ejemplo de la utilización del nodo JMSInput. 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 un nodo de salida en un flujo de mensajes que empiece con un nodo JMSInput, éste podrá ser cualquiera de los nodos de salida soportados (incluidos los nodos de salida definidos por el usuario); no es necesario incluir un nodo JMSOutput. No obstante, si no incluye un nodo JMSOutput, deberá incluir el nodo JMSMQTransform para transformar el mensaje al formato que espera el nodo de salida.

Si está propagando mensajes JMS y creando un flujo de mensajes para utilizarlo como un subflujo, no puede utilizar un nodo de entrada estándar; deberá utilizar una instancia del nodo JMSInput como primer nodo a fin de crear un terminal de entrada para el subflujo.

Inicio del cambioCuando se utilizan grupos de ejecución de 32 bits en un entorno de host de 64 bits, debe establecer las vías de acceso de biblioteca de WebSphere MQ JMS Java en MQSI_LIBPATH32. Por ejemplo:
export
MQSI_LIBPATH32=$MQSI_LIBPATH32:/usr/mqm/lib:/usr/mqm/java/lib
Fin del cambio
Restricción: Cuando el nodo JMSInput recibe temas de publicación, restringe internamente la propiedad de flujo de mensajes Instancias adicionales a cero para evitar que se reciban publicaciones duplicadas.

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

Los servicios configurables están definidos para varios proveedores de JMS. 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 servicio necesario.

Conexión de los terminales

Para cada mensaje que se recibe satisfactoriamente, el nodo JMSInput direcciona el mensaje al terminal Out (de salida). Si esta acción falla, se reintenta el mensaje. Si se alcanza el umbral de reintentos, estando definido el umbral por la propiedad Umbral de reintentos del nodo, el mensaje se direcciona al terminal de anomalías. Puede conectar nodos al terminal de anomalías para manejar esta condición.

Si se produce una excepción en la vía de acceso de anomalías, se vuelve a intentar la vía de acceso hasta que el número de intentos duplique el Umbral de restituciones. Si se sobrepasa este límite, el mensaje se transfiere al Destino de restitución.

Si no ha conectado nodos al terminal de anomalías, el mensaje se escribe en el Destino de restitución. Si no ha especificado un Destino de restitución, el nodo emite un mensaje de errorBIP4669 y deja de procesar entradas.

Si el nodo JMSInput capta el mensaje después de que se haya generado una excepción en cualquier otro lugar del flujo de mensajes, el mensaje se direcciona al terminal Catch (de captación). Si no ha conectado nodos al terminal de captación, el nodo restituye los mensajes para reentregarlos hasta que se resuelva el problema o se alcance el Umbral de restituciones. Si no define un Destino de restitución, el nodo emitirá un mensaje de error BIP4669 y dejará de procesar entradas.

Configuración de transacciones coordinadas

Cuando se incluye un nodo JMSInput en un flujo de mensajes, el valor que se establece para la Modalidad de transacción indica si los mensajes se reciben bajo punto de sincronismo.

  • Si establece esta propiedad en Global, el mensaje se recibe bajo la 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 esta propiedad en Local, el mensaje se recibe bajo control de punto de sincronismo local del nodo JMSInput. 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 esta propiedad en Ninguno, el mensaje no se recibe 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.
Para recibir mensajes bajo punto de sincronismo externo, deber efectuar más pasos de configuración que sólo deben aplicarse la primera ver que se despliega un nodo JMSOutput o JMSInput en el intermediario par aun proveedor JMS específico.
  • En sistemas distribuidos, el coordinador de punto de sincronismo externo para el intermediario es WebSphere MQ. Antes de desplegar un flujo de mensajes en el que la propiedad Modalidad de transacción se establece en Global, modifique el archivo .ini del gestor de colas para que incluya 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 los sistemas Linux y UNIX, añada una sección al archivo .ini del gestor de colas para cada proveedor de 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 Fábrica de contexto inicial del nodo JMSInput .
      • Ubicación de JNDI es el valor que se establece en la propiedad Enlaces JNDI de ubicación del nodo JMSInput. Este valor debe incluir la palabra clave inicial, que es una de las siguientes: 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, debe añadir al archivo de enlaces un valor predeterminado 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 en el que se encuentra el archivo de conmutación (SwitchFile); 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 utilizar el mismo gestor de colas para el intermediario y el proveedor JMS, asegúrese de que la instalación de WebSphere MQ está en el nivel mínimo requerido: Versión 5.3 CSD12 o Versión 6.0 Fixpack 1.

    Para utilizar el mismo gestor de colas para el intermediario y el proveedor de JMS, asegúrese de que la instalación WebSphere MQ está en el nivel mínimo requerido: WebSphere MQ Versión 6.0 Fix Pack 1 o superior para XA si se desea utilizar el mismo gestor de colas para el intermediario y el proveedor.

  • z/OS platform En z/OS, el gestor de puntos de sincronismo 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 sincronismo 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 .

Terminales y propiedades

Cuando haya colocado una instancia del nodo JMSInput 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 JMSInput se describen en la tabla siguiente.
Terminal Descripción
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.
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).

En la tabla siguiente se describen las propiedades de descripción del nodo JMSInput.
Propiedad O C Valor por omisión Descripción
Nombre de nodo No No El tipo de nodo, JMSInput 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 JMSInput.
Propiedad O C Valor por omisión Descripción
Fábrica de contexto inicial com.sun.jndi.fscontext. RefFSContextFactory Punto de partida para un espacio de nombres JNDI.

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 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   Vía de acceso de sistema o ubicación LDAP para el archivo de enlaces. El archivo de enlaces contiene definiciones para los objetos JNDI administrados utilizados por el nodo JMSInput.
Cuando entre 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 JMSInput.
  • 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 Serie 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 JNDI administrados, consulte la documentación del proveedor JMS.

Nombre de fábrica de conexión   El nombre de la fábrica de conexión que utiliza el nodo JMSInput para crear una conexión con el proveedor JMS. Este nombre ya debe existir en el archivo de enlaces.
Destino de restitución No   El nodo JMSInput envía mensajes de entrada a este destino cuando los errores impiden que el flujo de mensajes procese el mensaje y el mensaje se debe eliminar del destino de entrada. El nombre del destino de restitución debe existir en el archivo de enlaces.
Umbral de restituciones No 0 Valor que controla cuándo un mensaje que se ha vuelto a entregar se pone en el destino de restitución. Por ejemplo, si el valor es 3, el proveedor JMS intenta entregar el mensaje al destino de entrada tres veces. Tras el tercer intento de entrega, el mensaje se elimina del destino de entrada y se envía al Destino de restitución.
En la tabla siguiente se describen las propiedades Avanzadas del nodo JMSInput.
Propiedad O C Valor por omisión Descripción
Modalidad de transacción No ninguno Esta propiedad controla si el mensaje de entrada se recibe bajo punto de sincronismo externo, punto de sincronismo local o fuera de punto de sincronismo.
  • Seleccione Ninguna si el mensaje de entrada se va a tratar como no persistente. Si selecciona este valor, el mensaje se recibe utilizando una sesión JMS sin transacciones que se crea utilizando el distintivo Session.AUTO_ACKNOWLEDGE.
  • Seleccione Local si el nodo JMSInput debe coordinar la confirmación o la restitución de los mensajes JMS recibidos por el nodo, junto con cualquier otro recurso, por ejemplo,DB2 o WebSphere MQ, que realice trabajo en el flujo de mensajes. Si selecciona este valor, el nodo utiliza una sesión JMS con transacciones.
  • Seleccione Global si el nodo JMSInput 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 sistemas distribuidos y RRS (Resource Recovery Services - Servicios de recuperación de recursos) en z/OS. Si selecciona este valor, los mensajes recibidos por el nodo se coordinan globalmente utilizando una sesión XA JMS.
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

ac24820_