Utilice el nodo MQGet para recibir mensajes de clientes que se conecten al intermediario utilizando la WebSphere MQ Enterprise Transport y las interfaces de programación de aplicaciones MQI y AMI.
También puede utilizar el nodo MQGet para recuperar mensajes que se hayan colocado anteriormente en una cola de mensajes WebSphere MQ definida para el gestor de colas del intermediario.
Este tema contiene las secciones siguientes:
El nodo MQGet lee un mensaje de una cola especificada y establece el entorno de proceso para el mensaje. Si es adecuado, puede definir la cola de entrada como una cola compartida o una cola de clúster de WebSphere MQ.
Puede utilizar un nodo MQGet en cualquier parte de un flujo de mensajes, a diferencia de un nodo MQInput, que sólo se puede utilizar como el primer nodo de un flujo de mensajes. El árbol de mensajes de salida de un nodo MQGet se construye combinando el árbol de entrada con el árbol de resultados de la llamada MQGET. Puede establecer las propiedades del nodo MQGet para controlar la forma en que se reciben los mensajes; por ejemplo, puede indicar que un mensaje se debe procesar bajo el control de transacción o puede solicitar que, cuando se esté creando el árbol de resultados, se realice la conversión de datos al recibir cada mensaje de entrada.
El nodo MQGet se encuentra en la bandeja de WebSphere MQ de la paleta y está representado en el entorno de trabajo con el siguiente icono:
Una vez ha puesto una instancia del nodo MQGet en un flujo de mensajes, puede configurarlo; para obtener más información, consulte 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 para las que debe especificar un valor (las que no tienen un valor predeterminado definido) están marcadas con un asterisco.
Configure el nodo MQGet.
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type> <Fmt>XML</Fmt></mcd>
Si establece valores y esos valores difieren de los de la cabecera MQRFH2, los valores de la cabecera MQRFH2 tienen prioridad.
Deje Conjunto de mensajes en blanco para analizadores XML, XMLNS, XMLNSC, JMS, MIME y BLOB.
Deje en blanco Tipo de mensaje para los analizadores XML, XMLNS, XMLNSC, JMS, IDOC, MIME y BLOB.
Deje en blanco Formato del mensaje para los analizadores XML, XMLNS, XMLNSC, JMS, MIME y BLOB.
Si cambia este valor por Inmediato, el análisis parcial se altera temporalmente y se analizan y validan todos los elementos de mensaje, excepto los tipos complejos con una composición de Elección o Mensaje que no se pueden resolver en ese momento. Si cambia este valor a Completo, el análisis parcial se altera temporalmente y se analiza y valida todo lo contenido en el mensaje; los tipos complejos con una composición de Elección o Mensaje que no se pueden resolver en ese momento producen una anomalía de validación.
Puede entrar cualquier referencia de campo ESQL válida (esta referencia puede incluir expresiones), incluyendo referencias de campo nuevas para crear un nodo nuevo dentro del árbol de mensaje para insertar la respuesta en el mensaje que se propaga desde el árbol de entrada. Por ejemplo, OutputRoot.XMLNS.ABC.DEF y Environment.GotReply son referencias de campo válidas. Para obtener información más detallada, consulte Escenario de petición-respuesta utilizando un nodo MQGet.
Cuando se analiza mensaje de cola para crear el contenido del árbol de mensaje, se utilizan las propiedades de mensaje que ha especificado como propiedades de Análisis de mensaje de entrada del nodo.
Puede entrar cualquier referencia de campo ESQL válida (consulte la descripción de la propiedad Ubicación de datos de salida). Los datos que se ponen en esta ubicación son siempre el árbol de resultado completo, con el cuerpo como elemento BLOB. Ubicación de datos de resultado no se utiliza para los datos de aviso.
Si desea ver información más detallada, consulte los apartados Validar mensajes y Propiedades de validación.
Cuando incluya y configure un nodo MQGet en un flujo de mensajes, es posible desee alterar temporalmente sus propiedades en determinadas condiciones. Por ejemplo, es posible que necesite leer de una cola que esté identificada en otra parte del mensaje, o que se haya recuperado de un registro de una base de datos.
Para alterar temporalmente los valores establecidos para las propiedades del nodo MQGet a fin de conseguir una forma más dinámica de procesar mensajes, incluya un nodo Compute o JavaCompute en el flujo de mensajes antes del nodo MQGet. Configure este nodo para crear un nuevo mensaje de salida y añada campos al árbol de entorno local para definir nuevos valores para las propiedades que desee modificar.
Por ejemplo, incluyendo la siguiente sentencia ESQL añada un nodo Compute al flujo y defina un nuevo nombre de cola para que el nodo MQGet efectúe una lectura para buscar mensajes:
SET LocalEnvironment.MQ.GET.QueueName = 'new_queue';
Utilice LocalEnvironment.MQ.GET. como nombre de correlación para todos los campos relacionados con el nodo MQGet.
Conecte los terminales Out (de salida), Warning (de aviso), Failure (de anomalías) y No Message (sin mensaje) de este nodo a otro nodo del flujo de mensajes, para procesar el mensaje adicionalmente, procesar errores o enviar el mensaje a un destino adicional.
Para obtener más información, consulte Conectar terminales de anomalías.
Los terminales del nodo MQGet se describen en la tabla siguiente.
Terminal | Descripción |
---|---|
Entrada | Terminal de entrada que acepta el mensaje que está siendo procesado el flujo de mensajes. |
Aviso | Terminal de salida al que se propaga el árbol de salida si se produce un error (con un CC que indica un aviso) en el nodo mientras se intenta obtener un mensaje de la cola. La parte MQMD del mensaje se analiza, pero el resto del mensaje es un elemento BLOB no analizado. El aviso se descarta si el terminal no está conectado y no se produce ninguna propagación de salida del nodo en absoluto. |
De anomalías | Terminal de salida al que se direcciona el mensaje de entrada si se produce un error (con un CC que indica un error que es más grave que un aviso) en el nodo mientras se intenta obtener un mensaje de la cola. |
De salida | El terminal de salida al que se direcciona el mensaje si se recupera satisfactoriamente de la cola de WebSphere MQ. |
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 se construye a partir del mensaje de entrada únicamente, según los valores de las propiedades Modalidad de generación, Copiar mensaje y Copiar entorno local. |
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); 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 MQGet.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de nodo | No | No | El tipo de nodo, MQGet | El nombre del nodo. |
Descripción corta | No | No | Espacio en blanco | Descripción breve del nodo. |
Descripción larga | No | No | Espacio en blanco | Texto que describe la finalidad del nodo en el flujo de mensajes. |
En la tabla siguiente se describen las propiedades básicas del nodo MQGet.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Nombre de cola | Sí | Sí | Ninguno | Nombre de la cola de mensajes de WebSphere MQ de la que este nodo recupera mensajes. |
En la tabla siguiente se describen las propiedades de Análisis de mensajes de entrada del nodo MQGet.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Dominio de mensajes | No | No | Ninguno | Dominio que se utiliza para analizar el mensaje de cola. |
Conjunto de mensajes | No | No | Ninguno | Nombre o identificador del conjunto de mensajes en el que se define el mensaje de cola. |
Tipo de mensaje | No | No | Ninguno | El nombre del mensaje de cola. |
Formato del mensaje | No | No | Ninguno | El nombre del formato físico del mensaje de cola. |
Las propiedades de análisis del nodo MQGet se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Temporización del análisis | No | No | A petición | Esta propiedad controla cuándo se analiza la mensaje de cola. Los valores válidos son A
petición, Inmediato
y Completo. Si desea ver una descripción completa de esta propiedad, consulte Análisis a petición. |
Utilizar analizador compacto MQRFH2C para dominio MQRFH2 | No | No | No seleccionado | Esta propiedad controla si el analizador compacto MQRFH2C se utiliza para las cabeceras MQRFH2 en vez del analizador MQRFH2. |
Utilizar analizador compacto XMLNSC para dominio XMLNS | No | No | No seleccionado | Esta propiedad controla si el analizador compacto XMLNSC se utiliza para mensajes en el dominio XMLNS. Si se establece esta propiedad, los datos del mensaje aparecen bajo XMLNSC en 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 sea XMLNS. |
Retener el contenido mixto | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensaje cuando encuentra texto mixto en el mensaje de cola. 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 | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensaje cuando encuentra comentarios en el mensaje de cola. 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 | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensaje cuando encuentra instrucciones de proceso en el mensaje de cola. 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. |
En la tabla siguiente se describen las propiedades Avanzadas del nodo MQGet.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Modalidad de transacción | No | No | Sí | Esta propiedad controla si el mensaje de entrada se recibe bajo punto de sincronismo. Los valores válidos son Automática, Sí y No. |
Modalidad de generación | No | No | Mensaje | Esta propiedad controla qué partes del mensaje del árbol de entrada se copian. Los valores válidos son Mensaje, Entorno local, Mensaje y entorno local y Ninguna. |
Copiar mensaje | No | No | Ninguna | Esta propiedad controla qué partes del mensaje del árbol de entrada se copian. Los valores válidos son Ninguna, Copiar cabeceras y Copiar mensaje completo. |
Copiar entorno local | No | No | Copiar entorno local completo | Esta propiedad controla cómo se copia el entorno local en el mensaje de salida. Si lo establece en Copiar entorno local completo, en cada nodo en el flujo de mensajes, se crea una nueva copia del entorno local en el árbol y se llena con el contenido del entorno local del nodo precedente. Por tanto, si un nodo cambia el entorno local, los nodos en sentido ascendente no verán estos cambios porque tienen sus propias copias. Este comportamiento puede ser un problema si utiliza un nodo FlowOrder,
o bien si utiliza el mandato propagate en un nodo Compute. Si establece esta propiedad en Ninguna, cada nodo genera su propia copia del entorno local, pero utiliza el entorno local que pasa a éste mediante el nodo anterior. Por lo tanto, si un nodo cambia el entorno local, esos cambios los verán los nodos en sentido ascendente. |
Intervalo de espera (ms) | Sí | No | 1000 | Tiempo máximo, en milésimas de segundo, que se espera para la obtención del mensaje de cola de la cola de mensajes. |
Tamaño mínimo del almacenamiento intermedio de mensajes (KB) | Sí | No | 4 | Tamaño mínimo, en KB, del almacenamiento intermedio de obtención. El valor mínimo de esta propiedad es 1. |
Las propiedades de petición del nodo MQGet están descritas en la tabla siguiente.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Ubicación del MQMD de entrada | No | No | La ubicación en el mensaje ensamblado de entrada donde se encuentra el MQMD que va a utilizarse para la MQGET. La ubicación predeterminada es InputRoot.MQMD. | |
Ubicación de parámetros MQ de entrada | No | No | La ubicación en el mensaje ensamblado de entrada donde se pueden encontrar los parámetros de WebSphere MQ (por ejemplo, el tamaño inicial del almacenamiento intermedio y las alteraciones temporales de MQGMO). La ubicación predeterminada es InputLocalEnvironment.MQ.GET. | |
Obtener por ID de correlación | No | No | No seleccionado | Si selecciona este recuadro, sólo se recuperan los mensajes que tienen el ID de correlación especificado. |
Obtener por ID de mensaje | No | No | No seleccionado | Si selecciona este recuadro, sólo se recuperan los mensajes que tienen el ID de mensaje especificado. |
Utilizar MQMD de entrada completo | No | No | No seleccionado | Si selecciona este recuadro de selección, se utilizarán todos los campos del MQMD proporcionados; de lo contrario, se utilizarán únicamente el ID del mensaje y el ID de correlación. |
Las propiedades de resultado del nodo MQGet se describen en la siguiente tabla.
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Ubicación de datos de salida | No | No | OutputRoot | Esta propiedad especifica dónde se ponen los datos de salida. Si deja el campo en blanco, se utiliza OutputRoot como valor predeterminado. |
Ubicación de datos de resultado | No | No | ResultRoot | Esta propiedad especifica qué subárbol (del mensaje de cola) ha de usarse. Si deja este campo en blanco, se utiliza ResultRoot como valor predeterminado y se emplea el mensaje de cola completo. Por ejemplo, si se especifica ResultRoot.MQMD.ReplyToQ, sólo se utiliza ese subárbol. |
Ubicación de parámetros MQ de salida | No | No | Esta propiedad especifica dónde están ubicados los parámetros de WebSphere MQ de salida. Si deja este campo en blanco, se utiliza OutputLocalEnvironment.MQ.GET como valor predeterminado. Establezca Modalidad de generación para que incluya Entorno local para asegurarse de que los valores actualizados son visibles en los nodos en sentido descendente. La ubicación predeterminada es OutputLocalEnvironment.MQ.GET. | |
Ubicación de datos de aviso | No | No | OutputRoot | Esta propiedad especifica dónde se colocan los datos de salida si MQGET devuelve un código de aviso. Si deja este campo en blanco, se utiliza OutputRoot como valor predeterminado. |
Las propiedades de validación del nodo MQGet se describen en la siguiente tabla.
Para ver una descripción completa de estas propiedades, consulte Propiedades de validación.Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Validar | No | Sí | Ninguna | Esta propiedad controla si tiene lugar la validación. Los valores válidos son Ninguna, Contenido, Contenido y valor y Heredar. |
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 Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
Incluir todas las limitaciones de valor | No | No | True (verdadero) | Esta propiedad no se puede editar. Las comprobaciones de restricción de valor básicas se incluyen en la validación de Contenido y valor. |
Arreglo | No | No | Ninguna | Esta propiedad no se puede editar. |