Visualizando a Árvore Mensagem Lógica na Saída do Rastreio

Para visualizar a estrutura da árvore de mensagens lógicas em qualquer ponto no fluxo de mensagens, inclua um nó Trace e grave parte da mensagem, ou toda ela, (incluindo cabeçalhos e todas as quatro árvores de mensagens) no destino de saída de rastreio.

Isto poderá ser útil se você desejar verificar ou registrar o conteúdo de uma mensagem antes e depois de um nó ter feito alterações nela ou em seu recebimento pelo nó input. Por exemplo, para incluir um nó Compute que construa uma lista de destino em LocalEnvironment, você pode desejar um registro da estrutura que ele criou como parte de uma trilha de auditoria ou apenas verificar se o nó Compute está trabalhando conforme o esperado.

  1. Alterne para o Perspectiva do Desenvolvimento de Aplicativos do Intermediário.
  2. Abra o fluxo de mensagens para o qual você deseja visualizar as mensagens. Pode ser um fluxo de mensagens existente ou pode criar um novo fluxo de mensagens.
  3. Inclua um nó Trace sempre que desejar visualizar parte ou toda a estrutura de árvore de mensagens. Não há limite para o número de nós Trace que podem ser incluídos, no entanto, cada nó introduz alguma sobrecarga para o processamento do fluxo de mensagens.
  4. Defina as propriedades do nó Trace para rastrear a mensagem ou partes da mensagem que você deseja visualizar. Especifique as partes da mensagem utilizando referências do campo ESQL. Vários exemplos são incluídos abaixo.
  5. Se você incluiu um nó Trace para investigar um determinado comportamento do seu fluxo de mensagens e agora resolveu suas preocupações ou verificou que o fluxo de mensagens está funcionando corretamente, remova o nó ou os nós Trace e reimplemente o fluxo de mensagens.

Imagine que você tenha configurado um fluxo de mensagens que receba uma mensagem XML em uma fila do WebSphere MQ em um nó MQInput. A mensagem de entrada inclui um cabeçalho MQRFH2. O conteúdo da mensagem é mostrado abaixo:

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

Você pode incluir e configurar um nó Trace para produzir saída que mostre uma ou mais árvores criadas a partir dessa mensagem: o corpo da mensagem, as árvores Environment, LocalEnvironment e Exception. Se você escolher por registrar o conteúdo do corpo da mensagem, a árvore Propriedades e o conteúdo de todos os cabeçalhos (neste exemplo, pelo menos um MQMD e um MQRFH2) serão incluídos. Especifique se deseja ser gravado quando definir o Padrão da propriedade do nó Trace.A maioria dos nomes de correlação pode ser usada para definir esse padrão (não é possível utilizar nomes específicos do nó Compute).

Corpo da Mensagem
Se desejar que o nó Trace grave a árvore do corpo da mensagem, incluindo Propriedades e todos os cabeçalhos, defina Padrão como $Root. Se você deseja apenas os dados da mensagem, defina o Padrão como ${Body}.

A saída do rastreio gerada para a árvore de mensagens da mensagem mostrada acima com Padrão definido como $Root deve ser semelhante a:

Root
        Properties
           CreationTime=GMTTIMESTAMP '1999-11-24 13:10:00' (um campo de timestamp GMT)
     ... e outros campos ...
       MQMD         PutDate=DATE '19991124' (um campo de data)
          PutTime=GMTTIME '131000'                                 (um campo GMTTIME)
     ... e outros campos ...
       MQRFH          mcd          msd='xml' (um campo de cadeia de caracteres)
          .. e outros campos ...
       XML
                  Trade
          type='buy'                                             (um campo de cadeia de caracteres)
          Company='IBM'                                           (um campo de cadeia de caracteres)
          Price='200'                                             (um campo de cadeia de caracteres)
          Date='2000-01-01'                                       (um campo de cadeia de caracteres)
          Quantity='1000'                                         (um campo de cadeia de caracteres)
Environment
Para rastrear dados na árvore de ambientes, defina Padrão como ${Environment}.Isso produz saída semelhante à seguinte:
 (0x1000000)Environment = (
         (0x1000000)Variables = (
                (0x1000000)MyVariable1 = (
                    (0x2000000) = '3'
        )
                (0x1000000)MyVariable2 = (
                    (0x2000000) = 'Hello'
        )
      )
  ) 

Para rastrear determinadas variáveis na pasta de variáveis da árvore de ambientes, você pode utilizar um padrão mais específico, por exemplo ${Environment.Variables.MyVariable1} . Isso retorna apenas o valor (por exemplo, apenas o valor 3).

LocalEnvironment
Para rastrear dados na árvore Ambiente Local, defina Padrão como ${Ambiente Local}. A saída obtida é similar ao exemplo a seguir, que mostra uma lista de destino criada dentro da árvore Ambiente 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'
      )
    )
  )      

Outro exemplo, mostrado a seguir, inclui uma pasta WrittenDestination. Esse exemplo representa um rastreio gravado pelo nó Trace incluído após um nó MQOutput, em que o terminal de saída do nó MQOutput está conectado a uma seqüência de nós, incluindo o nó Trace. Quando um terminal out é conectado, o Ambiente Local aumenta com informações sobre a ação que o nó output executou.

(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 dados na lista de exceções, defina Padrão como ${Lista de Exceção}.

Você também pode exibir a estrutura de mensagens e outras informações dentro do fluxo de mensagens, quando utilizar o depurador de fluxo.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Estrutura de Árvore Lógica
Nomes de Correlação
Depurador de Fluxo
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Manipulando o Conteúdo do Corpo da Mensagem
Manipulando Outras Partes da Árvore de Mensagem
Testando e Depurando Aplicativos do fluxo de mensagens
Referências relacionadas
Nó Trace
Estrutura da Lista de Exceções
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac16810_