Visualizzazione dell'albero logico del messaggio nell'output di traccia

Per visualizzare la struttura logica dell'albero del messaggio in qualsiasi punto del flusso di messaggi, includere un nodo Trace e scrivere parzialmente o completamente il messaggio (comprese le intestazioni e tutti e quattro gli alberi del messaggio) nella destinazione dell'output di traccia.

Potrebbe essere utile controllare o registrare il contenuto di un messaggio prima e dopo che un nodo ha effettuato delle modifiche o al momento della ricezione da parte del nodo di input. Ad esempio, se si include un nodo Compute, che crea un elenco di destinazioni, in LocalEnvironment, si potrebbe desiderare un record della struttura creata come parte di una traccia di controllo o si potrebbe solo voler controllare che il nodo Compute stia operando come previsto.

  1. Passare alla Prospettiva Sviluppo dell'applicazione broker.
  2. Aprire il flusso di messaggi per cui si desidera visualizzare i messaggi. Questo potrebbe essere un flusso di messaggi esistente o è possibile creare un nuovo flusso di messaggi.
  3. Includere un nodo Trace ogni volta che si desidera visualizzare totalmente o parzialmente la struttura ad albero del messaggio. Non esiste un limite al numero di nodi Trace che si possono includere, tuttavia ogni nodo introduce un certo sovraccarico nell'elaborazione del flusso di messaggi.
  4. Impostare le proprietà del nodo Trace in modo da eseguire la traccia del messaggio o di parti del messaggio, che si desidera visualizzare. Si specificano le parti del messaggio utilizzando i riferimenti di campo ESQL. Di seguito sono inclusi diversi esempi.
  5. Se è stato aggiunto un nodo Trace per indagare su un particolare funzionamento del flusso di messaggi, una volta risolto il problema o verificato che il flusso di messaggi funziona correttamente, rimuovere il nodo o i nodi Trace e ridistribuire il flusso di messaggi.

Ipotizziamo che si sia configurato un flusso di messaggi che riceve un messaggio XML su una coda WebSphere MQ in un nodo MQInput. Il messaggio di input include un'intestazione MQRFH2. Il contenuto del messaggio è riportato di seguito:

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

E' possibile includere e configurare un nodo Trace per produrre l'output che mostra una o più delle strutture ad albero create da questo messaggio: le strutture ad albero relative al contenuto del messaggio, ad Environment, LocalEnvironment ed Exception. Se si decide di registrare il contenuto del messaggio, sono inclusi la struttura ad albero Properties e il contenuto di tutte le intestazioni (in questo esempio, almeno un'intestazione MQMD e un'intestazione MQRFH2). Si specifica cosa registrare quando si imposta la proprietà Modello del nodo Trace. E' possibile utilizzare la maggior parte dei nomi di correlazione per definire questo modello (non è possibile utilizzare i nomi che sono specifici per il nodo Compute).

Contenuto del messaggio
Se si desidera che il nodo Trace scriva la struttura ad albero del contenuto del messaggio includendo Properties e tutte le intestazioni, impostare Modello su $Root. Se si desiderano solo i dati del messaggio, impostare Modello su ${Body}.

L'output di traccia generato per la struttura ad albero del messaggio mostrata sopra con Modello impostato su $Root sarà simile a:

Root
      Properties
         CreationTime=GMTTIMESTAMP '1999-11-24 13:10:00'          (un campo data/ora GMT)
 
  ... e altri campi ...
 
      MQMD
         PutDate=DATE '19991124'                                  (un campo data)
 
         PutTime=GMTTIME '131000'                                 (un campo GMTTIME)
 
  ... e altri campi ...
 
      MQRFH
          mcd
          msd='xml'                                              (un campo stringa caratteri)
 
         .. e altri campi ...
 
      XML
         Trade
          type='buy'                                             (un campo stringa caratteri)
 
         Company='IBM'                                           (un campo stringa caratteri)
 
         Price='200'                                             (un campo stringa caratteri)
 
         Date='2000-01-01'                                       (un campo stringa caratteri)
 
         Quantity='1000'                                         (un campo stringa caratteri)
Environment
Per tenere traccia di tutti i dati nella struttura ad albero Environment, impostare Modello su ${Environment}. Questo produce un output simile al seguente:
 (0x1000000)Environment = (
      (0x1000000)Variables = (
        (0x1000000)MyVariable1 = (
          (0x2000000) = '3'
        )
        (0x1000000)MyVariable2 = (
          (0x2000000) = 'Hello'
        )
      )
  ) 

Per tenere traccia di variabili particolare nella cartella Variables della struttura ad albero Environment, è possibile utilizzare un modello più specifico, ad esempio ${Environment.Variables.MyVariable1}. Questo restituisce solo il valore (ad esempio, restituisce solo il valore 3).

LocalEnvironment
Per tenere traccia dei dati nella struttura ad albero LocalEnvironment, impostare Modello su ${LocalEnvironment}. L'output che si ottiene è simile al seguente esempio, che indica che è stato creato un elenco di destinazioni all'interno della struttura ad albero 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'
      )
    )
  )      

Un altro esempio, riportato di seguito, include una cartella WrittenDestination. Questa rappresenta una traccia che è stata scritta da un nodo Trace, incluso dopo un nodo MQOutput, in cui il terminale out del nodo MQOutput è connesso ad una sequenza di nodi che include il nodo Trace. Quando un terminale out è connesso, la struttura ad albero LocalEnvironment viene arricchita con le informazioni relative all'azione svolta dal nodo di output.

(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
Per tenere traccia dei dati nell'elenco eccezioni, impostare Modello su ${ExceptionList}.

E' possibile visualizzare anche la struttura del messaggio all'interno del flusso di messaggi e altre informazioni, quando si utilizza il programma di debug del flusso.

Concetti correlati
Panoramica dei flussi di messaggi
Struttura ad albero logica
Nomi di correlazione
Programma di debug del flusso
Attività correlate
Progettazione di un flusso di messaggi
Manipolazione del contenuto del messaggio
Manipolazione di altre parti della struttura ad albero del messaggio
Verifica e debug delle applicazioni flusso di messaggi
Riferimenti correlati
Nodo Trace
Struttura dell'elenco di eccezioni
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac16810_