Nodo JMSInput

Este tema contiene las secciones siguientes:

Finalidad

Utilice el nodo JMSInput para recibir mensajes de destinos JMS. A los destinos JMS se accede mediante una conexión a un proveedor JMS. 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 representa en el área de trabajo mediante el icono siguiente:

Icono de nodo JMSInput

Utilización del nodo JMSInput en un flujo de mensajes

El ejemplo de Nodos JMS contiene un flujo de mensajes en el que se utiliza el nodo JMSInput. Consulte este ejemplo para ver cómo se debe utilizar el nodo JMSInput.

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 empieza con un nodo JMSInput, éste puede ser cualquiera de los nodos de salida soportados (incluidos los nodos de salida definidos por el usuario); no tiene que incluir un nodo JMSOutput. Sin embargo, si no incluye un nodo JMSOutput, deberá incluir el nodo JMSMQTransform para transformar el mensaje al formato que el nodo de salida espera.

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.

Restricción: Existe actualmente una restricción al utilizar el nodo JMSInput para recibir temas de publicación. El nodo restringe internamente la propiedad de flujo de mensajes Instancias adicionales a cero para evitar que se reciban publicaciones duplicadas.

Cómo dejar el cliente de proveedor de JMS disponible para los nodos JMS

Para las plataformas distribuidas, copie los archivos .jar de java y las bibliotecas nativas para el cliente de proveedor JMS en un directorio de clases compartidas de intermediario. Por ejemplo, en Windows C:\Documents and Settings\All Users\Application Data\IBM\MQSI\shared-classes. Esto asegura que la vía de acceso de clase java para los nodos JMS se establezca correctamente.

Para z/OS, no hay ningún directorio de clases compartidas. En lugar de ello, debe especificar cada archivo .jar java de proveedor JMS en la vía de acceso de clase en el miembro BIPPROF del PDS (Partitioned Data Set - Conjunto de datos particionado) del intermediario. A continuación, actualice LIBPATH con las bibliotecas nativas y someta el trabajo BIPGEN JCL para actualizar el ENVFILE de intermediario.

Configuración del nodo JMSInput

Una vez que ha puesto una instancia del nodo JMSInput en un flujo de mensajes, puede configurarlo. Pulse el botón derecho del ratón en el nodo en la vista de editor y pulse Propiedades. Las propiedades básicas del nodo se visualiza en el diálogo de propiedades.

Todas las propiedades obligatorias que no tienen valor por omisión aparecen con un asterisco.

Configure el nodo JMSInput del modo siguiente:

  1. Seleccione Básico en el navegador del diálogo de propiedades y complete las propiedades siguientes:
    • 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 por omisión 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.

    • Entre un valor para los Enlaces JNDI de ubicación. Este valor especifica la vía de acceso de sistema de archivos o la ubicación LDAP para el archivo de enlaces. El archivo de enlaces contiene definiciones para los objetos JNDI administrados utilizados por el nodo JMSInput.

      Al entrar un valor para Enlaces JNDI de ubicación, asegúrese de seguir las instrucciones siguientes:

      • Construya 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, deberá configurar 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 cómo configurar estos valores, consulte los mandatos mqsicreatebroker y mqsichangebroker.
      • El valor de serie de caracteres debe incluir la palabra clave inicial, que es una de las siguientes: file:/ , iiop:/ o ldap:/.

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

    • Entre un Nombre de fábrica de conexiones. El nodo JMSInput utiliza el nombre de fábrica de conexiones para crear una conexión con el proveedor JMS. Este nombre ya debe existir en el archivo de enlaces.
    • Entre un nombre de Destino de restitución. Los mensajes de entrada se envían 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 de destino de restitución debe existir en el archivo de enlaces.
    • Entre un valor para el Umbral de restituciones. Este valor determina cuándo se pone un mensaje de entrada 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. Después del tercer intento de entrega, el mensaje se elimina del destino de entrada y se envía al destino de restitución. El valor por omisión es 0.
  2. Seleccione Por omisión en el navegador de diálogo de propiedades y establezca valores para las propiedades que describen el dominio de mensaje, el conjunto de mensajes, el tipo de mensaje y el formato de mensaje.
    • Si está utilizando el analizador MRM o IDOC, seleccione el conjunto de mensajes correcto en la lista desplegable de Conjunto de mensajes. Esta lista se llena con conjuntos de mensajes disponibles cuando se selecciona MRM o IDOC como dominio.

      Deje en blanco Conjunto de mensajes para los analizadores XML, XMLNS, JMS, y BLOB.

    • Si está utilizando el analizador MRM, seleccione el mensaje correcto en la lista desplegable de Tipo de mensaje. Esta lista se llena de mensajes que están definidos en el conjunto de mensajes que ha seleccionado.

      Deje en blanco Tipo de mensaje para los analizadores XML, XMLNS, JMS, , BLOB e .

    • Si está utilizando el analizador MRM o IDOC, seleccione el formato del mensaje en la lista desplegable de Formato del mensaje. Esta lista incluye todos los formatos físicos que ha definido para este conjunto de mensajes.

      Deje Formato de mensaje en blanco para los analizadores XML, XMLNS, JMSMap, JMSStream, y BLOB.

  3. Si se debe utilizar el nodo JMSInput para suscribirse a un tema, seleccione Pub/Susc en el navegador del diálogo de propiedades.
    • Entre el nombre del Tema de suscripción.
      • Si se configura esta propiedad, el nodo sólo operará en el dominio de mensajes de publicación/suscripción.
      • Esta propiedad se excluye mutuamente con Cola de origen en la sección de propiedades de Punto a punto.
      • El Tema de suscripción debe adaptarse a los estándares del proveedor JMS utilizado por el nodo.

    • Si el nodo debe recibir publicaciones de un tema de suscripción duradera, entre un ID de suscripción duradera.
      • La eliminación de una suscripción duradera es una tarea de administración independiente. Para obtener información sobre cómo eliminar una suscripción duradera, consulte la documentación de proveedor JMS.
      • Esta propiedad sólo es válida cuando se ha especificado una serie de caracteres de Tema de suscripción.
  4. Si el nodo JMSInput se va a utilizar para recibir mensajes de punto a punto, seleccione Punto a punto en el navegador del diálogo de propiedades.
    • Entre el nombre de Cola de origen, donde la Cola de origen es la cola JMS que se lista en el archivo de enlaces.
  5. Si se necesita el filtrado de mensajes, seleccione Selectores de mensajes en el navegador del diálogo de propiedades.
    • Si el proveedor JMS es necesario para filtrar mensajes basándose en propiedades de mensaje establecidas por la aplicación cliente JMS de origen, entre un valor para Propiedad de la aplicación, especificando el nombre de la propiedad y las condiciones de selección; por ejemplo OrderValue > 200.

      Deje esta propiedad en blanco si no desea que el nodo de entrada realice la selección basándose en la propiedad de aplicación. Consulte Selectores de mensajes JMS para obtener una descripción de cómo crear el selector de mensajes.

    • Si se necesita el proveedor JMS para filtrar mensajes que se han generado a horas específicas, entre un valor para Indicación de la hora, donde el valor es tiempo en Java no calificado en milisegundos, por ejemplo 105757642321. Califique el selector con operadores, por ejemplo BETWEEN o AND.

      Deje esta propiedad en blanco si no desea que el nodo de entrada realice la selección basándose en JMSTimeStamp.

    • Si el proveedor JMS se necesita para filtrar mensajes basándose en el valor de cabecera de JMSDeliveryMode de los mensajes JMS, seleccione una opción para Modalidad de entrega en la lista desplegable. Puede elegir entre:
      • No persistente para recibir mensajes marcados como no persistentes por la aplicación cliente JMS de origen.
      • Persistente para recibir mensajes marcados como persistentes por la aplicación cliente JMS de origen.

      Deje esta propiedad en blanco si no desea que el nodo de entrada realice la selección basándose en JMSDeliveryMode.

    • Si el proveedor JMS se necesita para filtrar mensajes basándose en el valor de cabecera de JMSPriority del mensaje JMS, entre un valor para Prioridad.

      Los valores válidos para la prioridad de mensaje son 0 (el más bajo) a 9 (el más alto). Por ejemplo, puede entrar 5 para recibir mensajes de prioridad 5. También puede calificar el selector; por ejemplo > 4 para recibir mensajes con una prioridad mayor que 4 o BETWEEN 4 AND 8 para recibir mensajes con una prioridad en el rango de 4 a 8.

      Deje en blanco esta prioridad si no desea que el nodo de entrada realice la selección basándose en JMSPriority.

    • Si el proveedor JMS se necesita para filtrar mensajes basándose en la cabecera JMSMessageID, entre un valor para ID de mensaje.

      Entre un ID de mensaje específico o entre un selector condicional, por ejemplo entre >WMBRK123456 para devolver mensajes donde el ID de mensaje sea mayor que WMBRK123456.

      Deje en blanco esta propiedad si no desea que el nodo de entrada realice una selección basándose en JMSMessageID.

    • Si el proveedor JMS se necesita para filtrar mensajes basándose en la cabecera JMSRedelivered, entre un valor para Reentregado.

      Entre FALSE si el nodo de entrada sólo acepta mensajes que el proveedor JMS no ha vuelto a entregar.

      Entre TRUE si el nodo de entrada sólo acepta mensajes que el proveedor JMS ha vuelto a entregar.

      Deje esta propiedad en blanco si no desea que el nodo de entrada realice la selección basándose en JMSRedelivered.

    • Si se necesita el proveedor JMS para filtrar mensajes basándose en la cabecera JMSCorrelationID, entre un valor para ID de correlación.

      Entre un ID de correlación específico o entre una serie de caracteres condicional; por ejemplo, WMBRKABCDEFG devuelve mensajes cuyo ID de correlación coincide con este valor.

      Deje esta propiedad en blanco si no desea que el nodo de entrada realice la selección basándose en JMSCorrelationID.

  6. Seleccione Avanzadas en el navegador del diálogo de propiedades.
    • Para definir las características transaccionales de cómo se maneja el mensaje, seleccione en la lista desplegable Modalidad de transacción. Puede elegir una de las opciones siguientes:
      • Seleccione ninguno si el mensaje de entrada se va a tratar como no persistente. En este caso el mensaje se recibirá 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 recibidos por el nodo, junto con cualquier otro recurso, por ejemplo DB2 o WebSphere MQ, que realice trabajo en el flujo de mensajes. En este caso el nodo utilizará una sesión JMS con transacciones.
      • Seleccione global si el nodo JMSInput debe participar en una transacción de flujo de mensajes global que el coordinador de puntos de sincronismo externo del intermediario va a gestionar. El coordinador de puntos de sincronismo es el Gestor de colas del intermediario en plataformas distribuidas y RRS (Resource Recovery Services - Servicios de recuperación de recursos) en z/OS. En este caso, los mensajes recibidos por el nodo se coordinarán globalmente utilizando una sesión XA JMS.
  7. Seleccione Opciones de analizador XMLNSC en el navegador del diálogo de propiedades.

    Si desea Utilizar analizador compacto XMLNSC para dominio XMLNS, seleccione el recuadro.

    Para Modalidad de retención de contenido mixto, Modalidad de retención de comentarios y Modalidad de retención de instrucciones de proceso, los recuadros desplegables ofrecen las opciones siguientes:

    • Ninguno
    • Todo
  8. Seleccione Descripción en el navegador del diálogo de propiedades para entrar una descripción breve y/o una descripción larga.
  9. Pulse Aplicar para realizar los cambios en el nodo JMSInput sin cerrar el diálogo de propiedades. Pulse Aceptar para aplicar los cambios y cerrar el diálogo de propiedades.

    Pulse Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.

Conexión de los terminales

Para cada mensaje que se recibe satisfactoriamente, el nodo JMSInput direcciona el mensaje al terminal de salida. Si esta operación no se ejecuta correctamente, se reintenta el mensaje. Si se alcanza el umbral de reintentos, donde el atributo BackoutThreshold del nodo define el umbral, el mensaje se direcciona al terminal de anomalías.

Puede conectar nodos al terminal de anomalías para manejar esta condición. Si no ha conectado nodos al terminal de anomalías, el mensaje se graba en el destino de restitución. Si no se ha proporcionado un destino de restitución, se emite un mensaje de error y el nodo deja de procesar entrada adicional. El mensaje de error es bip4669.

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 de captación. Si no ha conectado nodos al terminal de captación, el nodo restituirá el mensaje para reentregarlo hasta que se resuelva el problema o se alcance el umbral de restituciones.

Se debe definir un destino de restitución. Si no define un destino de restitución, el nodo emite un mensaje de error bip4669 y deja de procesar entrada adicional.

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 define si los mensajes se reciben bajo el punto de sincronismo.

  • Si lo establece 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 transferirá bajo punto de sincronismo, a menos que el nodo de salida haya modificado explícitamente esta operación.
  • Si lo establece en local, el mensaje se recibe bajo el control de punto de sincronismo local del nodo JMSInput. Los mensajes enviados subsiguientemente por un nodo de salida en el flujo no se ponen bajo el punto de sincronismo local, a menos que un nodo de salida individual haya especificado que el mensaje se debe poner bajo el punto de sincronismo local.
  • Si lo establece en ninguno, el mensaje no se recibe bajo el punto de sincronismo. Cualquier mensaje enviado posteriormente por un nodo de salida en el flujo de mensajes, no se transfiere bajo punto de sincronismo, a menos que un nodo de salida determinado haya especificado que el mensaje debe transferirse bajo punto de sincronismo.

El proveedor JMS puede proporcionar archivos jar adicionales que son necesarios para el soporte de transacción. Consulte la documentación de proveedor JMS. Por ejemplo, en plataformas distribuidas (no z/OS), el proveedor JMS de WebSphere MQ proporciona un archivo jar adicional com.ibm,mqetclient.jar. Este jar también se debe añadir al directorio shared_classes de intermediario. Consulte Cómo dejar el cliente de proveedor JMS disponible para los nodos JMS en este tema.

Es necesario realizar pasos de configuración adicionales cuando se deben recibir mensajes bajo el punto de sincronismo externo. Sólo es necesario aplicar estos pasos la primera vez que se despliega un JMSOutput o JMSInput en el intermediario para un proveedor JMS determinado:
  • En plataformas distribuidas, el coordinador de punto de sincronismo externo para el intermediario es WebSphere MQ. Antes de desplegar un flujo de mensajes donde la Coordinación de transacciones se ha establecido en , 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.
    • En Windows, los valores se configuran bajo la pestaña de propiedades del recurso de servicios de WebSphere MQ. Consulte la Guía de administración del sistema WebSphere MQ para obtener más información.
      Establezca la propiedad SwitchFile en el valor siguiente:
      <Vía acceso de instalación de intermediario>/bin/ JMSSwitch.dll
      XAOpenString=<Contexto inicial >,<ubicación JNDI>, <Opcional>
      ThreadOfControl=THREAD 
    • En plataformas distribuidas (excepto Windows) añada una sección al archivo “ini” del gestor de colas para cada proveedor JMS. Consulte la Guía de administración del sistema WebSphere MQ para obtener más información.
      Por ejemplo,
      XAResourceManager:
      Name=<Nombre_proveedor_Jms> 
      SwitchFile=/<Vía de acceso de instalación de intermediario>/bin/ JMSSwitch.so
      XAOpenString=<Contexto inicial >,<ubicación JNDI>, <Opcional>
      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 de sistema de archivos a la biblioteca JMSSwitch que se proporciona en el directorio bin del intermediario.

      Los valores para XAOpenString son los indicados a continuación:
      • Contexto inicial es el valor que se establece en la propiedad básica del nodo JMSInput Fábrica de contexto inicial .
      • ubicación JNDI es el valor que se establece en la propiedad básica de nodo JMSInput Ubicación de JNDI. Este valor debe incluir la palabra clave inicial file:/, iiop:/ o ldap:/
      Los parámetros siguientes son opcionales:
      • Principal LDAP que coincide con el valor que se establece para el intermediario utilizando los mandatos mqsicreatebroker o mqsichangebroker.
      • Credenciales LDAP que coincide con el valor que se establece para el intermediario utilizando el mandato mqsicreatebroker o mqsichangebroker.
      • Nombre de fábrica de conexiones de recuperación que es la fábrica de conexiones 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 conexiones de recuperación se debe definir como una fábrica de conexiones 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 Java CLASSPATH para el Gestor de colas del intermediario a fin de incluir una referencia a xarecovery.jar. Por ejemplo,
        <Vía de
        acceso de instalación de intermediario>/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,
        <Vía de acceso de instalación de intermediario>/bin

      XA no puede utilizar el mismo Gestor de colas para el intermediario y el proveedor hasta WebSphere MQ Versión 5.3, CSD12 y WebSphere MQ Versión 6 FixPack 1.

    • En z/OS, el gestor de punto 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 (Bind).

      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

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 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 del nodo; la columna con la cabecera O indica si la propiedad es obligatoria (marcada con un asterisco en el diálogo de propiedades si tiene que entrar un valor cuando no está definido ningún valor por omisión), 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 propiedad básicas del nodo JMSInput.

Propiedad O C Valor por omisión Descripción
Fábrica de contexto inicial   com.sun.jndi.fscontext.RefFSContextFactory Éste 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.

El valor por omisión es el utilizado cuando se utiliza Java WebSphere MQ como proveedor JMS.

Enlaces JNDI de ubicación No     Vía de acceso de sistema o ubicación LDAP para el archivo de enlaces.
Nombre de fábrica de conexiones No     Nombre de la fábrica de conexiones utilizado por el nodo JMSInput para crear una conexión con el proveedor JMS.
Destino de restitución No     Destino utilizado por el nodo JMSInput cuando el flujo de mensajes no puede procesar un mensaje debido a los errores del mensaje.
Umbral de restitución No   0 Valor que controla cuándo un mensaje que se ha vuelto a entregar se pone en el 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 ninguna Esta propiedad se utiliza para determinar si el mensaje de entrada se recibe bajo el punto de sincronismo externo, bajo el punto de sincronismo local o fuera del punto de sincronismo. Los valores válidos son ninguno, local y global.

En la tabla siguiente se describen las propiedades de descripción del nodo JMSInput.

Propiedad O C Valor por omisión Descripción
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.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2005 Última actualización: 07/11/2005
ac24820_