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 WebSphere Message Broker Toolkit con el siguiente icono:
Para obtener información sobre la utilización del nodo MQGet en un flujo de mensajes, consulte Un escenario de solicitud-respuesta que utiliza un nodo MQGet.
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.
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.
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.
Si establece la propiedad Sólo examinar, se ignorará el valor establecido para la propiedad Modalidad de transacción puesto que un mensaje no se puede examinar bajo un punto de sincronismo. No obstante, cualquier mensaje derivado que se propague más adelante por un nodo de salida en la misma instancia del flujo de mensajes seguirá el comportamiento descrito anteriormente según lo especificado por el valor de Modalidad de transacció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 mensaje de salida y añada campos al árbol de entorno local para definir nuevos valores para las propiedades que desee modificar.
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.
Valor | Descripción |
---|---|
QueueName | Este valor altera temporalmente la propiedad Nombre de cola
del nodo MQGet; por ejemplo:
|
InitialBufferSize | Este valor altera temporalmente la propiedad
Tamaño mínimo del almacenamiento
intermedio de mensajes del nodo MQGet; por ejemplo:
|
MQGMO.* | Este valor altera temporalmente las opciones de mensaje MQGET que utiliza el nodo
MQGet; por ejemplo:
Esta
alteración temporal se proporciona para flexibilidad, pero debe utilizarse
con precaución porque el MQGMO se utiliza exactamente como se ha
especificado.
Las propiedades del nodo y otras alteraciones de entorno
local no se tienen en cuenta. Para obtener más información sobre el protocolo MQGMO, consulte Centro de información en línea de WebSphere MQ Versión 7. |
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.
Terminal | Descripción |
---|---|
In (de entrada) | Terminal de entrada que acepta el mensaje que está siendo procesado el flujo de mensajes. |
Warning (de 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. |
Failure (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. |
Out (de salida) | El terminal de salida al que se direcciona el mensaje si se recupera satisfactoriamente de la cola de WebSphere MQ. |
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 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 del 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).
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. |
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Nombre de cola | Sí | Sí | Ninguno | Nombre de la cola de mensajes de WebSphere MQ
de la que este nodo recupera mensajes. Debe predefinir esta cola en el gestor de colas que contiene el intermediario en el que se despliega el flujo de mensajes. Si esta cola no es una cola válida, el nodo genera una excepción y el mensaje de entrada se propaga al terminal Failure (de anomalías). |
queueName |
En la tabla siguiente se describen las propiedades de Análisis de mensajes de entrada del nodo MQGet.
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type>
<Fmt>XML</Fmt></mcd>
Si establece valores y los valores son distintos de los valores de la cabecera MQRFH2, los valores de la cabecera
MQRFH2 tienen prioridad.Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Dominio de mensajes | No | No | BLOB | Dominio que se utiliza para analizar el mensaje. Si el campo está en blanco, el valor predeterminado es BLOB. |
Modelo de mensaje | No | No | Deseleccionado | Nombre o ubicación del archivo de esquemas de modelos de mensaje en el que se define el mensaje. Esta lista se llena con todos los archivos de esquemas de modelos de mensajes disponibles para el Dominio de mensajes que ha seleccionado. |
Mensaje | No | No | Deseleccionado | Nombre o ubicación de la raíz de mensaje dentro del archivo de esquemas de modelos de mensaje. Esta lista se llena con todos los mensajes disponibles que se han definido en el Modelo de mensaje que ha seleccionado. |
Formato físico | No | No | Deseleccionado | Nombre del formato físico del mensaje. Si está utilizando el analizador MRM o IDOC, seleccione el formato físico del mensaje de entrada de la lista. Esta lista incluye todos los formatos físicos que ha definido para este modelo de mensaje seleccionado. Si establece la propiedad Dominio de mensajes en DataObject, puede establecer esta propiedad en XML o IDoc ALE de SAP. Establezca esta propiedad en IDoc ALE de SAP cuando tenga que analizar una corriente de bits desde un origen externo y generar un árbol de mensajes. |
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. De forma predeterminada, esta propiedad se establece en A petición, con lo cual el análisis del mensaje se retrasa. Para hacer que el mensaje se analice inmediatamente, consulte Análisis a petición. |
Utilizar analizador compacto MQRFH2C para cabecera MQRFH2 | No | No | No seleccionado | Esta propiedad controla si se utiliza el analizador compacto MQRFH2C, en lugar del analizador MQRFH2, para las cabeceras MQRFH2. Seleccione Utilizar analizador compacto MQRFH2C para la cabecera MQRFH2 si desea que se utilice el analizador MQRFH2C. Por omisión, este recuadro no está seleccionado, lo que significa que no se utiliza el analizador compacto. |
Crear árbol utilizando los tipos de datos de esquema XML | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos de sintaxis en el árbol de mensajes con tipos tipos de datos tomados del esquema XML. Esta propiedad sólo se puede seleccionar si se establece la propiedad Validar del separador Validación en Contenido o Contenido y valor. Para obtener más información sobre XMLNSC, consulte Manipular mensajes en el dominio XMLNSC. |
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 establece esta propiedad, los datos del mensaje 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 sea XMLNS. |
Retener el contenido mixto | No | No | No seleccionado | Esta propiedad controla si el analizador XMLNSC crea elementos en el árbol de mensajes 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 mensajes 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 mensajes 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. |
Elementos opacos | No | No | Espacio en blanco | Esta propiedad se utiliza para especificar una lista de elementos del mensaje de cola 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 | 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. Seleccione un valor para Modalidad de transacción en la lista para
definir las características transaccionales de cómo se maneja este mensaje:
|
Modalidad de generación | No | No | Mensaje | Esta propiedad controla qué partes del mensaje del
árbol de entrada se copian. Seleccione un valor para Modalidad de generación en la lista
para definir qué componentes del mensaje de salida se generan en el nodo
MQGet y qué componentes se toman del
mensajes de entrada.
|
Copiar mensaje | No | No | Ninguna | Esta propiedad controla qué partes del mensaje del
árbol de entrada se copian. Si ha establecido la Modalidad de generación en Mensaje o Mensaje y entorno local, seleccione un valor para Copiar mensaje en la lista para definir qué partes del mensaje se generan en el nodo MQGet y qué partes se toman del mensajes de entrada.
|
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 ha establecido Modalidad de generación en Entorno local o Mensaje y entorno local, seleccione un valor para Copiar entorno local en la lista para definir qué partes del entorno local se generan en el nodo MQGet y qué partes se toman del mensaje de entrada.
|
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. Proporcione un valor para la propiedad Intervalo de espera (ms) para especificar cuántos milisegundos se debe esperar para recibir un mensaje de la llamada MQGET. Si selecciona 0, el intervalo de espera se inhabilita y no hay ningún tiempo de espera para mensajes. El valor de Intervalo de espera (ms) no puede ser negativo. Si no proporciona ningún valor, se utilizará el valor predeterminado de 1000 milésimas de segundo. |
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. Proporcione un valor para esta propiedad para especificar el tamaño del almacenamiento intermedio inicial para la llamada MQGET. El almacenamiento intermedio se expande automáticamente para aceptar un mensaje de cualquier tamaño, pero si es probable que los mensajes sean grandes, especifique un valor adecuado para reducir la frecuencia con la que el almacenamiento intermedio tenga que ajustar su tamaño. Si no se proporciona ningún valor, el tamaño del almacenamiento intermedio es 4 KB. |
Propiedad | O | C | Valor predeterminado | Descripción |
---|---|---|---|---|
Ubicación del MQMD de entrada | No | No | InputRoot.MQMD | La ubicación en el conjunto de mensajes 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 | InputLocalEnvironment.MQ.GET | La ubicación en el conjunto de mensajes 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. Si selecciona Obtener por ID de correlación, el campo CorrelId del mensaje que se debe recuperar debe coincidir con el campo CorrelId de la Ubicación del MQMD de entrada. De forma predeterminada, este recuadro de selección está deseleccionado. Establecer el campo CorrelId en MQCI_NONE, tendrá el mismo efecto que si no seleccionara Obtener por ID de correlación. |
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. Si selecciona Obtener por ID de mensaje, el campo MsgId del mensaje que se debe recuperar debe coincidir con el campo MsgId de la Ubicación del MQMD de entrada. De forma predeterminada, este recuadro de selección está deseleccionado. |
Utilizar todos los campos del MQMD de entrada | No | No | No seleccionado | Si selecciona Utilizar todos los campos MQMD
de entrada, se utilizan todos los campos MQMD en la Ubicación
MQMD de entrada para recuperar el mensaje. Si existe una corriente de bits MQMD en la
Ubicación MQMD de entrada, se utilizan todos los campos en la corriente de bits. Asegúrese de que el MQMD del mensaje que se va a recuperar coincida con estos campos. De forma predeterminada, este recuadro de selección está deseleccionado. Si no proporciona un MQMD de entrada, se utiliza el MQMD predeterminado. Si proporciona un MQMD de entrada, se utiliza el MQMQ predeterminado después de las siguientes modificaciones:
|
Sólo examinar | No | No | No seleccionado | Esta propiedad controla si un mensaje se elimina de la cola una vez leído. Si selecciona este recuadro de selección, el mensaje no se elimina de la cola una vez leído.Seleccione Sólo examinar para indicar que el mensaje debe retenerse en la cola cuando se lee. |
Restablecer cursor de examinar | No | No | No seleccionado | Puede establecer esta propiedad sólo si ha seleccionado Sólo examinar. Cuando selecciona Restablecer cursor de examinar, el nodo examina a partir del principio de la cola MQ (es decir, se especifica la opción get MQGMO_BROWSE_FIRST MQ). Si no selecciona esta propiedad, el nodo examina a partir del principio de la posición del cursor actual en la cola MQ (es decir, se especifica la opción get MQGMO_BROWSE_NEXT MQ). |
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.
Entre la ubicación de inicio en el árbol de mensajes de salida en la que se almacenan los elementos analizados de la serie de bits del mensaje de cola. Todos los elementos de esta ubicación se suprimen el
comportamiento predeterminado es sustituir el mensaje del árbol de entrada por
mensaje de cola. Puede entrar cualquier referencia de campo ESQL válida (esta referencia puede incluir expresiones), incluyendo referencias de campo nuevas para crear un nodo 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 Un escenario de solicitud-respuesta que utiliza un nodo MQGet. Cuando se analiza mensaje de cola para crear el contenido del árbol de mensajes, se utilizan las propiedades de mensaje que ha especificado como propiedades de Análisis de mensaje de entrada del nodo. |
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. Establezca esta propiedad para controlar qué subárbol de la mensaje de cola se coloca en el mensaje de salida. Si, por ejemplo, desea que únicamente el MQMD del mensaje de cola, utilice ResultRoot.MQMD; después, este subárbol se coloca en la ubicación especificada por Ubicación de datos de salida. |
Ubicación de parámetros MQ de salida | No | No | OutputLocalEnvironment.MQ.GET | 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. Establezca esta propiedad para controlar dónde se colocan en el árbol de salida el CC (código de terminación), el RC (código de razón), el indicador examinado y cualquier otro parámetro de WebSphere MQ (por ejemplo el MQMD usado por la llamada MQGET). |
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. Establezca esta propiedad para controlar la colocación del mensaje de cola cuando la llamada MQGET devuelve un código de aviso. 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. |
Incluir el contenido del mensaje en el conjunto de mensajes de salida | No | No | Seleccionado | Esta propiedad especifica que no se requiere ningún dato de
resultado ni de aviso para el conjunto de mensajes de salida. Si selecciona este recuadro de selección, el nodo obtiene o examina el mensaje en la cola
sin leer ni analizar completamente su contenido. Si selecciona Incluir contenido de mensaje en el conjunto de mensajes de salida, no se garantiza que el contenido del mensaje se incluya en el árbol de salida porque dicha inclusión depende de otras propiedades del nodo como, por ejemplo, la propiedad Modalidad de generación. Borre Incluir contenido de mensaje en el conjunto de mensajes de salida para indicar que no se requiere ningún dato de resultado ni de aviso para el conjunto de mensajes de salida. Esta acción obtiene o examina el mensaje en la cola sin leer ni analizar su contenido. |
Propiedad | O | C | Valor predeterminado | Descripción | Propiedad de mandato mqsiapplybaroverride |
---|---|---|---|---|---|
Validar | No | Sí | Ninguna | Esta propiedad controla si tiene lugar la validación. Los valores válidos son Ninguno, Contenido, Contenido y valor y Heredar. | 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 Rastreo de usuario, Anotaciones de error locales, Excepción y Lista de excepciones. |
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. |