El nodo MQGet procesa cada mensaje que se recibe.
Este tema contiene las siguientes secciones:
Propagación del mensaje
- Si en el árbol de entrada hay una cabecera MQMD (MQ Message Descriptor), el nodo MQGet la utiliza. Si no, el nodo crea un MQMD predeterminado.
- El nodo también crea una estructura MQGMO (MQ Get Message Options) predeterminada basada en los
valores que ha establecido para las propiedades de nodo.
Si hay un MQGMO en el árbol de
entrada, el nodo utiliza su contenido para modificar el predeterminado.
Cuando
incluye un MQGMO para alterar temporalmente el que hay de forma predeterminada, debe
especificar todas las opciones que está sustituyendo. Por ejemplo, si establece el
campo de opción en MQGMO_CONVERT, ese valor altera temporalmente todas las opciones
que establece con el
WebSphere Message Broker Toolkit. Si no utiliza un MQGMO de alteración temporal,
WebSphere Message Broker utilizará los valores siguientes:
- Si Intervalo de espera no es cero, se
establece MQGMO_WAIT; de lo contrario, se utiliza MQGMO_NOWAIT.
- Si Modalidad de transacción se
establece en Sí, se
utiliza MQGMO_SYNCPOINT.
- Si Modalidad de transacción se
establece en No, se utiliza
MQGMO_NOSYNCPOINT.
- Si Modalidad de transacción se
establece en Automática, se utiliza
MQGMO_SYNCPOINT_IF_PERSISTENT.
- La única otra opción que se utiliza de forma predeterminada en las propiedades
de nodo es MQGMO_COMPLETE_MSG, que se establece si
Modalidad de transacción se establece en
Sí o No.
Esta opción no se establece cuando su intermediario se está ejecutando en
z/OS.
- No se utilizan otras opciones de forma predeterminada.
- El nodo realiza la llamada MQGet a
WebSphere MQ.
- El nodo analiza el código de terminación (CC) y propaga el mensaje al terminal adecuado:
- Correcto
- El nodo crea el entorno local de salida y los árboles de mensaje de salida utilizando técnicas de análisis de mensajes estándares y, a continuación, propaga el mensaje al terminal Out (de salida).
- Aviso
- El nodo crea el entorno local de salida y los árboles de mensaje de salida utilizando
BLOB como tipo de cuerpo de mensaje y, a continuación, propaga el mensaje al terminal Warning (de aviso), si está conectado. Si el terminal Warning (de aviso) no está conectado, no se produce ninguna propagación y el flujo finaliza.
- Anomalía (sin mensaje)
- El nodo crea el entorno local de salida y los árboles de mensaje de salida copiando los árboles de mensaje y, a continuación, propaga el mensaje al terminal No Message (sin mensaje), si está conectado. Si el terminal No Message (sin mensaje) no está conectado, no se produce ninguna propagación. El mensaje de salida que se propaga al terminal sin mensaje (No Message)
se construye a partir del mensaje de entrada únicamente, según los valores
de la propiedad Modalidad de
generación, y las propiedades Copiar
mensaje o Copiar entorno
local.
- Anomalía (otra)
- El nodo propaga el mensaje al terminal Failure (de anomalía). Si el terminal de anomalías no está
conectado, el intermediario genera una excepción y devuelve el control al
nodo más próximo que lo puede procesar. Para obtener más información, consulte
Manejar errores en flujos de mensajes.
El
diagrama siguiente muestra este proceso:

Construcción de OutputLocalEnvironment
- Si la propiedad Modalidad de generación del nodo MQGet está establecida en una opción que no incluya LocalEnvironment, el nodo copia el árbol del entorno local de entrada en el árbol de entorno local de salida.
Si se realiza esta copia, las actualizaciones que se hagan en este nodo al árbol del entorno local de salida no se propagarán en sentido descendente.
- Si la propiedad Copiar entorno local se establece en una opción que no sea Ninguno, el nodo copia el árbol de entorno local de entrada en el árbol de entorno local de salida.
- Si la ubicación de datos de salida apunta al árbol de entorno
local de salida, el nodo aplica cambios en ese árbol copiando del árbol de
resultados.
- El árbol de entorno local se propaga.
El
diagrama siguiente muestra este proceso:

Creación de mensaje del salida
- Si la propiedad Modalidad de
generación del nodo MQGet está establecida
en una opción que no incluye Mensaje, el
nodo copia el árbol de mensaje de entrada al árbol de mensaje de salida. Vaya al paso 5.
- Si la propiedad Ubicación de datos de salida
se establece en OutputRoot,
el nodo crea el árbol de mensaje de salida totalmente a partir del árbol de resultados. Vaya al paso 5.
- Si la propiedad Copiar mensaje
se establece en un valor que no sea
Ninguno, el nodo copia el
árbol de mensaje de entrada en el árbol de mensaje de salida.
- Si la propiedad Ubicación de datos
de salida apunta a una parte del árbol de mensaje de salida,
el nodo aplica cambios en ese árbol copiando del árbol de resultados en el
punto definido por la propiedad Ubicación de datos de resultado.
- Se propaga el árbol de mensaje.
El
diagrama siguiente muestra este proceso:

Para obtener un ejemplo de cómo se implementa este proceso en un flujo de mensajes, consulte Un escenario de solicitud-respuesta que utiliza un nodo MQGet.