Vista del árbol de mensajes lógico en la salida de rastreo

Para ver la estructura del árbol de mensajes lógico en cualquier punto del flujo de mensajes, incluya un nodo Trace y escriba una parte o todo el mensaje (incluidas las cabeceras y los cuatros árboles de mensajes) en el destino de la salida de rastreo.

Es posible que le resulte útil para comprobar o registrar el contenido de un mensaje antes y después de que un nodo haya realizado cambios en el mismo o que el nodo de entrada lo haya recibido. Por ejemplo, si incluye un nodo Compute que crea una lista de destino en el entorno local, es posible que desee un registro de la estructura que ha creado como parte de un seguimiento de auditoría o es posible que desee comprobar que el nodo Compute funciona como esperaba.

  1. Vaya a la perspectiva Desarrollo de aplicaciones de intermediario.
  2. Abra el flujo de mensajes para el que desea ver los mensajes. Esto puede ser un flujo de mensajes existentes o puede crear un nuevo flujo de mensajes.
  3. Incluya un nodo Trace siempre que desee ver una parte o toda la estructura del árbol de mensajes. No hay límite en el número de nodos Trace que puede incluir, no obstante, cada nodo introduce una actividad general en el proceso del flujo de mensajes.
  4. Establezca las propiedades del nodo Trace para rastrear el mensaje o las partes del mensaje que desea ver. Especifique las partes del mensaje utilizando las referencias de campo ESQL. Se incluyen varios ejemplos a continuación.
  5. Si ha añadido un nodo Trace para investigar un comportamiento determinado del flujo de mensajes y ahora ha resuelto sus interrogantes o ha comprobado que el flujo de mensajes funciona correctamente, suprima el o los nodos Trace y vuelva a desplegar el flujo de mensajes.

Presuponga que ha configurado un flujo de mensajes que recibe un mensaje XML en un cola WebSphere MQ de un nodo MQInput node. El mensaje de entrada incluye una cabecera MQRFH2. El contenido del mensaje se muestra a continuación:

<Trade type='buy'
 Company='IBM'
 Price='200.20'
 Date='2000-01-01'
 Quantity='1000'/>

Puede incluir y configurar el nodo Trace para generar salida que muestre uno o más árboles creados a partir de este mensaje: los árboles Environment, LocalEnvironment y Exception. Si opta por registrar el contenido del cuerpo del mensaje, se incluyen el árbol de propiedades y el contenido de todas las cabeceras (en este ejemplo, al menos un MQMD y un MQRFH2). Especifique que desea un registro cuando establezca la propiedad del nodo Trace Patrón. Puede utilizar la mayor parte de los nombres de correlación para definir este patrón (no puede utilizar los nombres que son específicos del nodo Compute).

Cuerpo del mensaje
Si desea que el nodo Trace escriba el árbol del cuerpo del mensaje incluidas las propiedades y todas las cabeceras, establezca Patrón en $Root. Si solamente desea los datos del mensaje, establezca Patrón en ${Body}.

La salida de rastreo generada por el árbol de mensajes del mensaje mostrado anteriormente con Patrón establecido en $Root, será similar al siguiente:

Root
      Properties
         CreationTime=GMTTIMESTAMP '1999-11-24 13:10:00'          (un campo de indicación de la hora GMT)
 
  ... y otros campos ...
 
      MQMD
         PutDate=DATE '19991124'                                  (un campo de fecha)
 
         PutTime=GMTTIME '131000'                                 (un campo GMTTIME)
 
  ... y otros campos ...
 
      MQRFH
          mcd
          msd='xml'                                              (un campo de serie de caracteres)
 
         .. y otros campos ...
 
      XML
         Trade
          type='buy'                                             (un campo de serie de caracteres)
 
         Company='IBM'                                           (un campo de serie de caracteres)
 
         Price='200'                                             (un campo de serie de caracteres)
 
         Date='2000-01-01'                                       (un campo de serie de caracteres)
 
         Quantity='1000'                                         (un campo de serie de caracteres) 
Entorno
Para rastrear cualquier dato en el árbol del entorno, establezca Patrón en ${Environment}. Esto genera una salida similar a la siguiente:
 (0x1000000)Environment = (
      (0x1000000)Variables = (
        (0x1000000)MyVariable1 = (
          (0x2000000) = '3'
        )
        (0x1000000)MyVariable2 = (
          (0x2000000) = 'Hello'
        )
      )
  ) 

Para rastrear variables concretas en la carpeta de variables del árbol Environment, puede utilizar un patrón más específico, por ejemplo ${Environment.Variables.MyVariable1}. Esto devuelve sólo el valor (por ejemplo, devuelve simplemente el valor 3).

Entorno local
Para rastrear los datos de árbol del entrono local, establezcaPatrón en ${LocalEnvironment}. La salida resultante es similar al ejemplo siguiente, que muestra que se ha creado una lista de destinos en el árbol del entorno local:
(0x1000000)Destination = (
    (0x1000000)MQ                = (
      (0x1000000)DestinationData = (
        (0x3000000)queuename = 'MQOUT'
      )
    )
     (0x1000000)MQDestinationList = (
      (0x1000000)DestinationData = (
        (0x3000000)queuename = 'OLDMQOUT'
      )
    )
    (0x1000000)RouterList        = (
      (0x1000000)DestinationData = (
        (0x3000000)labelname = 'continue'
      )
      (0x1000000)DestinationData = (
        (0x3000000)labelname = 'custdetails'
      )
      (0x1000000)DestinationData = (
        (0x3000000)labelname = 'trade'
      )
    )
  )      

Otro ejemplo, que se muestra a continuación, incluye una carpeta WrittenDestination. Esto representa un rastreo que se ha escrito mediante un nodo Trace incluido después de un nodo MQOutput, en el que el terminal de salida del nodo MQOutput está conectado a una secuencia de nodos incluido el nodo Trace. Cuando se conecta un terminal de salida, se aumenta el entorno local con información acerca de la acción que ha realizado el nodo de salida.

(0x1000000)Destination        = (
    (0x1000000)MQ                = (
      (0x1000000)DestinationData = (
        (0x3000000)queuename = 'MQOUT'
      )
    )
  (0x1000000)WrittenDestination = (
    (0x1000000)MQ = (
      (0x1000000)DestinationData = (
        (0x3000000)queueName        = 'MQOUT'
        (0x3000000)queueManagerName = 'MQSI_SAMPLE_QM'
        (0x3000000)replyIdentfier   = X'414d51204d5153495f53414d504c455f1f442f3b12600100'
        (0x3000000)msgId            = X'414d51204d5153495f53414d504c455f1f442f3b12600100'
        (0x3000000)correlId         = X'000000000000000000000000000000000000000000000000'
      )
    )
  )
)
ExceptionList
Para rastrear los datos de la lista de excepciones, establezca Patrón en ${ExceptionList}.

También puede ver la estructura de mensajes del flujo de mensajes y otra información cuando utiliza el depurador de flujos.

Conceptos relacionados
Flujos de mensajes
Árbol lógico de mensajes
Nombres de correlación
Depurador de flujos

Tareas relacionadas
Diseño de un flujo de mensajes
Manipular el contenido del cuerpo del mensaje
Manipulación de otras partes del árbol de mensajes
Prueba y depuración de aplicaciones de flujo de mensajes

Referencia relacionada
Nodo Trace
Estructura de la lista de excepciones