Ver el árbol lógico de mensaje en la salida de rastreo

Para ver la estructura del árbol lógico de mensaje en cualquier punto del flujo de mensajes, incluya un nodo Trace y escriba una parte o todo el mensaje (incluidas las cabeceras y los cuatro á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 cuando el nodo de entrada lo ha recibido. Por ejemplo, si incluye un nodo Compute que crea una lista de destinos en LocalEnvironment, es posible que desee registrar la estructura que se ha creado como parte de un seguimiento de auditoría o es posible que simplemente desee comprobar que el nodo Compute funciona tal y como esperaba.

  1. Vaya a Perspectiva de Desarrollo de aplicaciones de intermediario.
  2. Abra el flujo de mensajes para el que desee visualizar los mensajes. Esto puede ser un flujo de mensajes existente o puede crear un nuevo flujo de mensajes.
  3. Incluya un nodo Trace donde desee para ver una parte o toda la estructura del árbol de mensaje. No hay ningún límite en cuanto al número de nodos Trace que puede incluir, no obstante, cada nodo introduce alguna actividad general para el proceso del flujo de mensajes.
  4. Establezca las propiedades del nodo Trace para rastrear el mensaje o partes del mensaje que desea visualizar. Especifique las partes del mensaje utilizando referencias de campo ESQL. A continuación, se incluyen varios ejemplos.
  5. Si ha añadido un nodo Trace para investigar un comportamiento determinado del flujo de mensajes y ahora ha resuelto el problema o ha comprobado que el flujo de mensajes funciona correctamente, suprima el nodo 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 una cola WebSphere MQ de un nodo MQInput. 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 un nodo Trace para generar salida que muestre uno o más árboles creados a partir de este mensaje: el cuerpo del mensaje, los árboles Environment, LocalEnvironment y Exception. Si opta por registrar el contenido del cuerpo del mensaje, se incluyen el árbol Properties y el contenido de todas las cabeceras (en este ejemplo, al menos un MQMD y un MQRFH2). Especifique lo que desea registrar cuando establezca la propiedad Patrón del nodo Trace. Puede utilizar la mayor parte de los nombres de correlación para definir este patrón (no puede utilizar los nombres que sean 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 sólo desea los datos del mensaje, establezca Patrón en ${Body}.

La salida de rastreo generada para el árbol de mensaje del mensaje que se ha mostrado anteriormente con Patrón establecido en $Root será similar a la 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)
Environment
Para rastrear los datos del árbol de 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).

LocalEnvironment
Para rastrear datos en el árbol LocalEnvironment, establezca el Patrón en ${LocalEnvironment}. La salida que obtiene es similar al ejemplo siguiente, que muestra que una lista de destinos se ha creado en el árbol LocalEnvironment:
(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 ha grabado un nodo Trace incluido después de un nodo MQOutput, donde el terminal de salida del nodo MQOutput se conecta a una secuencia de nodos incluido el nodo Trace. Cuando se conecta un terminal de salida, se aumenta LocalEnvironment 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 datos en la lista de excepciones, establezca Patrón en ${ExceptionList}.

También puede ver la estructura de los mensajes en el flujo de mensajes y otra información, cuando utilice el depurador de flujos.

Conceptos relacionados
Visión general de flujos de mensajes
Estructura del árbol lógico
Nombres de correlaciones
Depurador de flujos de mensajes
Tareas relacionadas
Diseñar un flujo de mensajes
Manipular el contenido del cuerpo del mensaje
Manipular otras partes del árbol de mensaje
Prueba y depuración de aplicaciones de flujo de mensajes
Referencia relacionada
Nodo Trace
Estructura de la lista de excepciones
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac16810_