Utilice el nodo JMSReceive para recibir mensajes de colas JMS en medio de un flujo de mensajes. Se accede a las colas JMS mediante una conexión con un proveedor JMS.
Este tema contiene los apartados siguientes:
El nodo JMSReceive actúa como consumidor de mensajes JMS y puede recibir los seis tipos de mensajes definidos en Java™ Message Service Specification, versión 1.1.
El nodo JMSReceive se encuentra en la bandeja JMS de la paleta y está representado en WebSphere Message Broker Toolkit mediante el siguiente icono:
El nodo JMSReceive recibe y propaga mensajes con un árbol de mensajes JMS. Puede utilizar un nodo JMSReceive en medio de un flujo de mensajes, a diferencia de un nodo JMSInput, que sólo puede utilizar como el primer nodo de un flujo de mensajes. El árbol de mensajes de salida de un nodo JMSReceive se construye combinando el árbol de entrada con el árbol de resultados del mensaje JMS recibido. Puede especificar qué datos del mensaje de entrada se combina con el árbol de resultados utilizando el panel de propiedades Resultado.
Puede establecer las propiedades del nodo JMSReceive para controlar el modo en que se reciben los mensajes JMS.
El nodo JMSReceive es síncrono y por lo tanto, bloquea el flujo de mensajes hasta que recibe un mensaje de la cola JMS definida. Si no se recibe ningún mensaje en el periodo de tiempo de espera especificado, el mensaje de entrada se propaga hasta el terminal de salida No message (sin mensaje) se propaga hasta el terminal de salida No Message (sin mensaje). Si el valor de Tiempo de espera es 0, el nodo no espera de forma indefinida hasta recibir un mensaje JSM y por consiguiente, sólo recibe el siguiente mensaje si hay uno disponible de forma inmediata.
Los flujos de mensajes que manejan mensajes que se reciben de conexiones con proveedores JMS pueden iniciarse con un nodo JMSInput o bien incluir un nodo JMSReceive en medio del flujo de mensajes. Si incluye un nodo de salida en un flujo de mensajes que contiene un nodo JMSReceive, éste puede ser cualquiera de los nodos de salida soportados (incluidos los nodos de salida definidos por el usuario); no es necesario que incluya un nodo JMSOutput.
El nodo JMSReceive sólo maneja escenarios punto a punto con colas JMS. Para suscribirse a un tema, utilice el nodo JMSInput.
Puede ver información sobre los ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit o el Information Center en línea. Puede ejecutar ejemplos sólo cuando utilice el Information Center que está integrado en WebSphere Message Broker Toolkit.
Los servicios configurables están definidos para una serie de proveedores JMS. Puede elegir uno de los servicios predefinidos, o bien puede crear un servicio para un nuevo proveedor, o para uno de los proveedores existentes. Los servicios predefinidos se listan en Propiedades de servicios configurables.
Utilice el mandato mqsireportproperties para ver las propiedades del proveedor y el mandato mqsichangeproperties para establecer o modificar las propiedades.
Para cada uno de los mensajes que se recibe satisfactoriamente, el nodo JMSReceive direcciona el mensaje al terminal Out (de salida). Si esta acción falla, se reintenta el mensaje. Si se alcanza el umbral de reintentos, el mensajes de direcciona al terminal Failure (de anomalías). Puede conectar nodos al terminal de anomalías para manejar esta condición.
Si el nodo no puede recibir un mensaje de la cola JMS dentro del periodo de tiempo especificado en la propiedad Tiempo de espera, el mensaje de entrada se direcciona al terminal No Message (sin mensaje).
Si el proceso no se reanuda después de reiniciar el intermediario o el grupo de ejecución, consulte el registro de despliegue para saber si existe algún motivo como, por ejemplo, la especificación de un analizador incorrecto en las propiedades del nodo. Corrija el problema y vuelva a desplegar el flujo de mensajes. Si el mensaje propiamente dicho no es válido, elimínelo de la cola de entrada para reanudar el proceso.
Cuando se incluye un nodo JMSReceive 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. Consulte Configuración para transacciones JMS coordinadas.
Cuando haya colocado una instancia del nodo JMSReceive en un flujo de mensajes, podrá configurarlo; consulte Configurar un nodo de flujo de mensajes. Las propiedades del nodo se muestran en la vista Propiedades. Todas las propiedades obligatorias que no tienen un valor predeterminado aparecen con un asterisco.
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 recibe satisfactoriamente. |
No Message (sin mensaje) | Terminal de salida al que se direcciona el mensaje de entrada si no hay ningún mensaje disponible en la cola. El mensaje de salida que se propaga al terminal No Message (sin mensaje) se construye a partir del mensaje de entrada. |
Las tablas siguientes describen las propiedades del 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).
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo, JMSReceive | 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. |
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Cola de origen | No | Sí | Seleccionado | Nombre de la cola de la que el nodo recibe mensajes de entrada. | sourceQueueName |
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre del proveedor JMS | Sí | No | WebSphere MQ | Seleccione un nombre de proveedor JMS en la lista o especifique el nombre que desee. Cuando se selecciona un nombre de proveedor de la lista, la propiedad Fábrica de contexto inicial se actualiza automáticamente con la clase Java pertinente. Si entra su propio nombre de proveedor JMS, también debe entrar un valor para la Fábrica de contexto inicial El nombre debe coincidir con el nombre de un servicio configurable que se ha definido para el intermediario al que despliega el flujo de mensajes. De forma alternativa, puede especificar el servicio configurable de JMSProviders. | |
Fábrica de contexto inicial | No | Sí | com.sun.jndi.fscontext. RefFSContextFactory | 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 o tema para el proveedor JMS. Si selecciona un nombre de proveedor JMS de la lista en Nombre de proveedor JMS, la propiedad Fábrica de contexto inicial se actualiza automáticamente con la clase Java pertinente. Si entra un nombre de proveedor JMS que no esté en la lista, también deberá entrar un valor en Fábrica de contexto inicial. El valor predeterminado es com.sun.jndi.fscontext.RefFSContextFactory, que define la Fábrica de contexto inicial para el proveedor JMS de WebSphere MQ. Si el nodo se ha establecido para utilizar su propio proveedor JMS, y la propiedad Servicios configurables correspondiente de la definición mqsichangeproperties tiene el atributo InitialContextFactory establecido, este atributo altera temporalmente el valor del nodo. |
initialContextFactory |
Enlaces JNDI de ubicación | No | Sí | 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
JMSReceive. Cuando entre un valor para
Enlaces
JNDI de ubicación, asegúrese de que satisface las indicaciones siguientes:
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. Si el nodo se ha establecido para utilizar su propio proveedor JMS, y la propiedad Servicios configurables correspondiente de la definición mqsichangeproperties tiene el atributo jndiBindingsLocation establecido, este atributo altera temporalmente el valor del nodo. |
locationJndiBindings | |
Nombre de fábrica de conexiones | No | Sí | El nombre de la fábrica de conexiones que utiliza el nodo JMSReceive para crear una conexión con el proveedor JMS. Este nombre debe existir en el archivo de enlaces. | connectionFactoryName | |
Tiempo de espera | Sí | Sí | 2000 | El tiempo máximo, en milisegundos, que se espera el nodo JMSReceive para consumir un mensaje de la cola JMS. Establezca la propiedad Tiempo de espera para especificar cuántos milisegundos hay de espera hasta recibir un mensaje. El valor de Tiempo de espera no puede ser negativo. Un valor de 0 significa que el nodo no espera hasta que haya un mensaje disponible y sólo recibe el siguiente mensaje si hay uno disponible de forma inmediata. Si no proporciona un valor, se utiliza el valor predeterminado de 2000 milisegundos. |
receiveTimeout |
En la tabla siguiente se describen las propiedades de Análisis de mensaje de respuesta del nodo JMSReceive para los dominios MRM, XMLNSC, XMLNS, MIME, BLOB, XML y JSON.
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Dominio de mensajes | No | No | Dominio que se utiliza para analizar el mensaje de la corriente de bits suministrada del recurso externo. | |
Conjunto de mensajes | No | No | Nombre del conjunto de mensajes en el que se define el mensaje de respuesta. | |
Tipo de mensaje | No | No | Nombre del mensaje de respuesta. | |
Formato del mensaje | No | No | Nombre del formato físico del mensaje de respuesta. |
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Temporización del análisis | Sí | No | A petición | Esta propiedad controla cuándo se analiza un mensaje de respuesta. Los valores válidos son:
|
Crear árbol utilizando tipos de datos de esquema XML | Sí | No | Deseleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos de sintaxis en el árbol de mensajes con tipos de datos obtenidos del esquema XML. Sólo puede seleccionar esta propiedad si establece Validar en Contenido o Contenido y valor. |
Utilizar analizador compacto XMLNSC para dominio XMLNS | Sí | No | Deseleccionado | Esta propiedad controla si el analizador compacto XMLNSC se utiliza para mensajes en el dominio XMLNS. Si establece esta propiedad, los datos del mensaje de respuesta se visualizarán bajo XMLNSC en los nodos que estén conectados al terminal de salida cuando la cabecera MQRFH2 de entrada o el Dominio de mensajes de las propiedades de Análisis de mensaje de entrada sean XMLNS. |
Retener el contenido mixto | Sí | No | Deseleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra texto mixto en un mensaje de respuesta. Si selecciona el recuadro, se crean elementos para el texto mixto. Si deselecciona el recuadro, el texto mixto se ignora y no se crea ningún elemento. |
Retener los comentarios | Sí | No | Deseleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra comentarios en un mensaje de respuesta. Si selecciona el recuadro, se crean elementos para los comentarios. Si deselecciona el recuadro, los comentarios se ignoran y no se crea ningún elemento. |
Retener las instrucciones de proceso | Sí | No | Deseleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes cuando encuentra instrucciones de proceso en un mensaje de respuesta. Si selecciona el recuadro, se crean elementos para las instrucciones de proceso. Si deselecciona el recuadro, las instrucciones de proceso se ignoran y no se crea ningún elemento. |
Elementos opacos | No | No | Espacio en blanco | Esta propiedad se utiliza para especificar una lista de elementos del mensaje de entrada que el analizador XMLNSC deba analizar de forma opaca. El análisis opaco sólo se realiza si la validación no está habilitada (es decir, si Validar tiene el valor Ninguno); las entradas que se especifiquen en Elementos opacos se omiten si la validación está habilitada. |
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Propiedad de la aplicación | No | No | Selector de mensajes que filtra los mensajes de
acuerdo con el valor de la propiedad de la aplicación. Si es necesario que el proveedor JMS filtre mensajes basándose en las propiedades de mensaje establecidas por la aplicación cliente JMS de origen, especifique una serie de caracteres de selector para Propiedad de la aplicación, especificando el nombre de la propiedad y las condiciones de selección; por ejemplo OrderValue > 200. Deje la Propiedad de la aplicación en blanco si no desea que el nodo realice una selección basada en la propiedad de la aplicación. |
|
Indicación de fecha y hora | No | No | Selector de mensajes que filtra los mensajes de acuerdo con
JMSTimestamp. Si es necesario que el proveedor JMS filtre mensajes que se hayan generado en horas específicas, especifique una serie de caracteres de selector para Indicación de fecha y hora, donde el valor es una hora en milésimas de segundo, no calificada, de Java; por ejemplo, 105757642321. Califique el selector con operadores, por ejemplo =, BETWEEN o AND. Deje en blanco Indicación de fecha y hora si no desea que el nodo realice una selección basada en JMSTimeStamp. |
|
Modalidad de entrega | No | No | Todo | Selector de mensajes que filtra los mensajes de
acuerdo con la modalidad de entrega de mensajes. Si es necesario que el proveedor JMS filtre mensajes basándose en el valor de la cabecera JMSDeliveryMode
de los
mensajes JMS, seleccione una opción para Modalidad de entrega en
la lista:
|
Prioridad | No | No | Selector de mensajes que filtra los mensajes de
acuerdo con la prioridad de los mensajes. Si es necesario que el proveedor JMS filtre mensajes basándose en el valor de cabecera de JMSPriority del mensaje JMS, especifique una serie de caracteres de selector para Prioridad. Los valores válidos para la Prioridad son de 0 (el más bajo) a 9 (el más alto). Por ejemplo, especifique = 5 para recibir mensajes de prioridad 5, > 4 para recibir mensajes con una prioridad mayor que 4 o BETWEEN 4 AND 8 para recibir mensajes con una prioridad en el rango 4 - 8. Deje en blanco Prioridad si no desea que el nodo realice una selección basada en JMSPriority. |
|
Tipo de mensaje | No | No | Selector de mensajes que filtra los mensajes de
acuerdo con el tipo de mensaje. Si es necesario que el proveedor JMS filtre mensajes basándose en el valor de cabecera de JMSType del mensaje JMS, especifique una serie de caracteres de selector para Tipo de mensaje. Los valores válidos para Tipo de mensaje son:
Deje en blanco Tipo de mensaje si no desea que el nodo realice una selección basada en JMSType. |
|
ID de mensaje | No | No | Selector de mensajes que filtra los mensajes de
acuerdo con el ID de mensaje. Si es necesario que el proveedor JMS filtre mensajes basándose en la cabecera JMSMessageID, especifique una serie de caracteres de selector para ID de mensaje. Por ejemplo, especifique > WMBRK123456 para devolver mensajes en los que el ID de mensaje es mayor que WMBRK123456. Deje en blanco el ID de mensaje si no desea que el nodo efectúe una selección basada en JMSMessageID. |
|
Reentregado | No | No | Si es necesario que el proveedor JMS filtre mensajes basándose en la cabecera
JMSRedelivered, especifique una serie de caracteres de selector para Reentregado:
|
|
ID de correlación | No | No | Selector de mensajes que filtra los mensajes de
acuerdo con el ID de correlación. Si es necesario que el proveedor JMS filtre mensajes basándose en la cabecera JMSCorrelationID, especifique una serie de caracteres de selector para ID de correlación. Por ejemplo, = WMBRKABCDEFG devuelve mensajes con un ID de correlación que coincide con este valor. Deje en blanco el ID de correlación si no desea que el nodo efectúe una selección basada en JMSCorrelationID. |
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Modalidad de transacción | Sí | No | Automática | Esta propiedad controla si el mensaje se genera bajo una transacción JMS. Los valores válidos son Sí, No y Automática. Seleccione No para generar el mensaje utilizando una sesión JMS no transaccional. Seleccione Sí para generar el mensaje utilizando una sesión JMS transaccional. La transacción JMS puede ser local o coordinada XA. Para utilizar una transacción coordinada XA, mediante una sesión JMS XA, también debe seleccionar la propiedad de flujo de mensajes Transacción coordinada en las propiedades del archivo BAR. Seleccione Automática si desea que la transaccionalidad del mensaje se herede del valor Modalidad de transacción en el nodo de entrada al principio del flujo. |
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sólo examinar | No | No | Deseleccionado | Esta propiedad booleana controla si los mensajes se consumen o se examinan. Si los mensajes se examinan, el nodo lee el mensaje pero no lo elimina de la cola. Si esta propiedad está seleccionada, Modalidad de transacción se inhabilita y la transaccionalidad no se utiliza para examinar. |
Restablecer examen | No | No | Deseleccionado | Esta propiedad booleana determina el comportamiento de examen del nodo JMSReceive. Si esta propiedad está seleccionada, el nodo examina mensajes desde el principio de la cola. Si esta propiedad está deseleccionada, el nodo examina mensajes en la posición actual en la cola. Restablezca la ubicación de examen en la cola. Si esta propiedad está deseleccionada, las acciones posteriores de examinar examinan el siguiente mensaje de la cola. Si esta propiedad está seleccionada, el nodo examine desde la parte delantera de la cola, examinando el mismo mensaje como si se consumiera de la cola. |
Propiedad | M | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Ubicación de datos de salida | No | No | $OutputRoot | La ubicación en el árbol de mensajes de salida en la que el nodo JMSReceive envía la salida. Primero se copia el directorio raíz de entrada en el directorio raíz de salida y, a continuación, los datos de resultado se copian en la ubicación del árbol de salida especificada por Ubicación de datos de salida. El valor predeterminado, $OutputRoot sustituye al árbol de mensajes copiado con los datos de resultado y no propaga ninguno de los mensajes de entrada. Por ejemplo, un valor de $OutputRoot/XMLNS/MyData inserta los datos de mensajes de resultado en el árbol de mensajes de salida, fusionando o sobrescribiendo el árbol de mensajes. Puede especificar Ubicación de datos de salida como una expresión ESQL o XPATH. Consulte Combinación de un mensaje de resultado con un mensaje de entrada. |
Ubicación de datos de resultado | No | No | $ResultRoot | La ubicación en el mensaje recibido de la cola JMS que se copia en el campo Ubicación de datos de salida en el mensaje de salida. Por ejemplo, el valor predeterminado $ResultRoot inserta el mensaje de resultado en el árbol de salida en la ubicación especificada por Ubicación de datos de salida. Un valor de $ResultRoot/JMSMap/map/MyMapItem sólo coloca MyMapItem desde un mensaje JMSMap en la ubicación especificada por Ubicación de datos de salida. Puede especificar Ubicación de datos de resultado como una expresión ESQL o XPATH. Consulte Combinación de un mensaje de resultado con un mensaje de entrada. |
Copiar entorno local | No | No | Seleccionado | Esta propiedad especifica si el entorno local se copia en el mensaje de salida.
|
Propiedad | M | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | Sí | Sí | Ninguno | Esta propiedad controla si tiene lugar la validación. Los valores válidos son:
|
validateMaster |
Acción para anomalía | No | No | Excepción | Esta propiedad controla qué sucede si falla la
validación. Sólo
puede establecer esta propiedad si establece
Validar en
Contenido o
Contenido y valor. Los valores válidos son:
|
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Sucesos | No | No | Ninguno | Los sucesos que se han definido para el nodo se visualizan en este separador. De forma predeterminada, no se define ningún suceso de supervisión en ningún nodo en un flujo de mensajes. Utilice Añadir, Editar y
Suprimir para crear, cambiar o suprimir sucesos de supervisión para el nodo; consulte Configuración de orígenes de sucesos de supervisión utilizando propiedades de supervisión para obtener detalles. Puede habilitar e inhabilitar sucesos que se muestran aquí seleccionando o deseleccionando el recuadro Habilitado. |
Puede alterar dinámicamente valores en el entorno local del mismo modo que se establecen valores en otros elementos de un mensaje. Consulte Alteraciones temporales del entorno local para el nodo JMSReceive.