Wenn Sie die Struktur der Baumstruktur einer logischen Nachricht an irgendeinem Punkt im Nachrichtenfluss anzeigen möchten, fügen Sie einen Trace-Knoten ein, und schreiben Sie einige oder alle Nachrichtenbereiche (einschließlich der Header und allen vier Nachrichtenbaumstrukturen) in die Zieladresse der Traceausgabe.
Die Traceausgabe 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 Compute-Knoten einfügen, der in der lokalen Umgebung (LocalEnvironment) eine Zieladressenliste erstellt, können Sie die Struktur, die von ihm als Teil einer Protokollaufzeichnung erstellt wurde, aufzeichnen oder lediglich prüfen, ob der Compute-Knoten erwartungsgemäß funktioniert.
Unter UNIX gilt für syslog-Einträge eine Längenbegrenzung
und Nachrichten, die an das syslog gesendet werden, werden durch das Zeilenvorschubzeichen
abgeschnitten. Um eine große Datenmenge in einem Protokoll unter
UNIX aufzuzeichnen, müssen Sie die Eigenschaft
Zieladresse für den
Trace-Knoten auf
Datei oder
Benutzertrace statt auf
Lokales Fehlerprotokoll setzen.
Angenommen, Sie haben einen Nachrichtenfluss konfiguriert, der in einer WebSphere MQ-Warteschlange in einem MQInput-Knoten 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 Trace-Knoten einfügen und konfigurieren, um eine Ausgabe zu generieren, die eine oder mehrere Baumstruktur(en) anzeigt, die auf Basis dieser Nachricht erstellt wurde(n): den Hauptteil der Nachricht, sowie die Baumstrukturen für die Umgebung (Environment), lokale Umgebung (LocalEnvironment) und Ausnahmebedingungen (Exception). 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 Trace-Knotens geben Sie an, was aufgezeichnet werden soll. Sie können zur Definition dieses Musters die meisten Korrelationsnamen verwenden (die Namen, die sich speziell auf den Compute-Knoten 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}. Durch diese Einstellung 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'. Dieses Beispiel stellt einen Trace dar, der von einem Trace-Knoten geschrieben wurde, der nach einem MQOutput-Knoten eingefügt wurde. Dabei ist das Ausgangsterminal des MQOutput-Knotens mit einer Folge von Knoten verbunden, die den Trace-Knoten 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' (0x03000000):GroupId = X'414d512042524f4b45523220202020203f59934620001803' ) ) ) )
Wenn Sie den Fluss-Debugger verwenden, können Sie auch die Nachrichtenstruktur im Nachrichtenfluss sowie sonstige Informationen anzeigen.