Wenn Sie die Struktur der Baumstruktur einer logischen Nachricht an irgendeinem Punkt im Nachrichtenfluss anzeigen möchten, fügen Sie einen Traceknoten ein, und schreiben Sie einige oder alle Nachrichtenbereiche (einschließlich der Header und allen vier Nachrichtenbaumstrukturen) in die Zieladresse der Traceausgabe.
Dies kann hilfreich sein, wenn Sie vor und nach der Änderung einer Nachricht durch einen Knoten oder bei ihrem Erhalt im Empfangsknoten den Inhalt einer Nachricht prüfen oder aufzeichnen möchten. Wenn Sie beispielsweise einen Rechenknoten einfügen, der in der lokalen Umgebung eine Zieladressenliste erstellt, können Sie die Struktur, die von ihm als Teil einer Protokollaufzeichnung erstellt wurde, aufzeichnen oder lediglich prüfen, ob der Rechenknoten erwartungsgemäß funktioniert.
Angenommen, Sie haben einen Nachrichtenfluss konfiguriert, der in einer WebSphere MQ-Warteschlange in einem MQEmpfangsknoten eine XML-Nachricht empfängt. Die Eingabenachricht enthält einen MQRFH2-Header. Der Nachrichteninhalt lautet wie folgt:
<Trade type='buy' Company='IBM' Price='200.20' Date='2000-01-01' Quantity='1000'/>
Sie können einen Traceknoten einfügen und konfigurieren, um eine Ausgabe zu generieren, die eine oder mehrere Baumstrukturen anzeigt, die auf Basis dieser Nachricht erstellt wurden: den Hauptteil der Nachricht, sowie die Baumstrukturen für die Umgebung, lokale Umgebung und Ausnahmebedingungen. Wenn Sie sich für die Aufzeichnung des Inhalts eines Nachrichtenhauptteils entscheiden, werden die Baumstruktur für Eigenschaften und der Inhalt aller Header (in diesem Beispiel mindestens ein MQMD- und ein MQRFH2-Header) aufgenommen. Bei der Festlegung der Eigenschaft Muster des Traceknotens geben Sie an, was aufgezeichnet werden soll. Sie können zur Definierung dieses Musters die meisten Korrelationsnamen verwenden (die Namen, die sich speziell auf den Rechenknoten beziehen, können nicht verwendet werden).
Die Traceausgabe, die für die Nachrichtenbaumstruktur der oben genannten Nachricht generiert wurde, sieht bei der Festlegung von $Root für Muster in etwa folgendermaßen aus:
Root Properties CreationTime=GMTTIMESTAMP '1999-11-24 13:10:00' (GMT-Zeitmarkenfeld) ... sowie weitere Felder ... MQMD PutDate=DATE '19991124' (Datumsfeld) PutTime=GMTTIME '131000' (GMTTIME-Feld) ... sowie weitere Felder ... MQRFH mcd msd='xml' (Zeichenfolgefeld) .. sowie weitere Felder ... XML Trade type='buy' (Zeichenfolgefeld) Company='IBM' (Zeichenfolgefeld) Price='200' (Zeichenfolgefeld) Date='2000-01-01' (Zeichenfolgefeld) Quantity='1000' (Zeichenfolgefeld)
(0x1000000)Environment = ( (0x1000000)Variables = ( (0x1000000)MyVariable1 = ( (0x2000000) = '3' ) (0x1000000)MyVariable2 = ( (0x2000000) = 'Hello' ) ) )
Wenn Sie für bestimmte Variablen im Variablenordner der Umgebungsbaumstruktur einen Trace durchführen möchten, können Sie ein spezifischeres Muster verwenden, z. B. ${Environment.Variables.MyVariable1}. Dadurch wird nur der Wert zurückgegeben (z. B. lediglich der Wert 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' ) ) )
Ein weiteres Beispiel (siehe unten) enthält den Ordner 'WrittenDestination'. Dies stellt einen Trace dar, der von einem Traceknoten geschrieben wurde, der nach einem MQSendeknoten eingefügt wurde. Dabei ist das Ausgangsterminal des MQSendeknotens mit einer Folge von Knoten verbunden, die den Traceknoten enthält. Wird ein Ausgangsterminal verbunden, wird LocalEnvironment durch Informationen zu den Aktionen erweitert, die vom Sendeknoten ausgeführt wurden.
(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' ) ) ) )
Wenn Sie den Fluss-Debugger verwenden, können Sie auch die Nachrichtenstruktur im Nachrichtenfluss sowie sonstige Informationen anzeigen.