Estructura del árbol de mensajes

El árbol de mensajes forma parte del árbol lógico de mensajes en el que el nodo de integración almacena su representación interna del cuerpo del mensaje.

La raíz de un árbol de mensajes se denomina Raíz. El árbol de mensajes siempre está presente y se pasa de nodo a nodo en una sola instancia de un flujo de mensajes.

El árbol de mensajes incluye todas las cabeceras que están presentes en el mensaje, además del cuerpo del mensaje. El árbol también incluye el subárbol de Propiedades, si lo ha creado el analizador. Si el árbol de mensajes lo ha creado un analizador suministrado, el elemento que representa el subárbol de propiedades va seguido de cero o más cabeceras.

Si el mensaje se ha recibido en WebSphere® MQ Enterprise Transport o WebSphere MQ Transporte móvil, la primera cabecera (el segundo elemento) debe ser MQMD. Cualquier cabecera adicional incluida en el mensaje aparece en el árbol en el mismo orden que en el mensaje. El último elemento debajo de la raíz del árbol de mensajes siempre es el cuerpo del mensaje.

Si el árbol de mensajes lo ha creado un analizador definido por el usuario, el árbol de propiedades, si está presente, va seguido del cuerpo del mensaje.

En la siguiente sección se muestra la estructura de árbol de mensajes. Si el mensaje de entrada no es un mensaje de WebSphere MQ , es posible que las cabeceras que se muestran no estén presentes. Si el árbol lo ha creado un analizador definido por el usuario, es posible que el árbol de propiedades no aparezca.

Estructura de árbol de mensajes creada por un nodo de entrada y un analizador para un mensaje recibido en un transporte que utiliza WebSphere MQ.

El árbol del cuerpo del mensaje es una estructura de elementos hijo que representa el contenido del mensaje (datos) y refleja la estructura lógica de dicho contenido. El árbol de Cuerpo es creado por un analizador de cuerpos (ya sea un analizador suministrado o un analizador definido por el usuario)

Cada elemento del árbol analizado tiene uno de esto tres tipos:

Elemento de nombre
Un elemento de nombre tiene asociada una Serie, que es el nombre del elemento. Un ejemplo de un elemento de nombre esXMLElement. Un elemento de nombre también tiene una segunda serie asociada, que es el espacio de nombres del elemento; esta serie puede estar vacía.
Elemento de valor
Un elemento de valor tiene asociado un valor al mismo. Un ejemplo de un elemento de valor esXMLContent.
Elemento de nombre-valor
Un elemento de nombre-valor es una optimización del caso en el que un elemento de nombre sólo contiene un elemento de valor y nada más. El elemento contiene un nombre y un valor. Un ejemplo de un elemento nombre-valor esXMLAttribute.

Carpeta Propiedades

La carpeta de Propiedades es el primer elemento del árbol de mensajes y contiene información sobre las características del mensaje.

La raíz de la carpeta de propiedades se llama Propiedades. Es el primer elemento bajo el elemento raíz. Todos los árboles de mensaje generados por los analizadores incorporados incluyen una carpeta de propiedades para el mensaje. Si crea su propio analizador definido por el usuario, puede decidir si el analizador debe crear una carpeta de propiedades. Sin embargo, para una mayor coherencia, debería incluir esta acción en el analizador definido por el usuario.

La carpeta de propiedades contiene un conjunto de propiedades estándar que puede manipular en los nodos del flujo de mensajes de la misma manera que cualquier otra propiedad. Algunos de estos campos se correlacionan con campos de las cabeceras WebSphere MQ soportadas, si están presentes, y se pasan al analizador adecuado cuando se entrega un mensaje de un nodo a otro.

Por ejemplo, la cabecera MQRFH2 contiene información sobre el modelo de mensaje, el nombre de mensaje y el formato físico del mensaje. Estos valores se almacenan en la carpeta de propiedades como MessageSet, MessageType y MessageFormat. Para acceder a estos valores utilizando ESQL o Java™ en los nodos de proceso de mensajes, consulte estos valores en la carpeta Propiedades; no haga referencia directamente a los campos de las cabeceras de las que se derivan.

El analizador de propiedades asegura que los valores de los campos de cabecera coincidan con los valores de la carpeta de propiedades en la entrada y la salida de cada nodo. Para cualquier campo, si cambia únicamente una cabecera (la cabecera Propiedades o una cabecera de mensaje específica), se utiliza dicho valor. Si ambas cabeceras Propiedades y la cabecera de mensaje específica han cambiado, se utiliza el valor de la carpeta Propiedades.

Cuando el proceso de flujo de mensajes se ha completado, se descarta la carpeta de propiedades.