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.
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).
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)
(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).
(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' ) ) ) )
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.