Die Baumstruktur einer logischen Nachricht in der Traceausgabe anzeigen

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.

  1. Wechseln Sie in die Ansicht 'Brokeranwendungsentwicklung'.
  2. Öffnen Sie den Nachrichtenfluss, für den Nachrichten angezeigt werden sollen. Hierbei kann es sich um einen bereits vorhandenen Nachrichtenfluss handeln, oder Sie können einen neuen Nachrichtenfluss erstellen.
  3. Fügen Sie an allen Stellen, an denen Sie einen Teil der oder die gesamte Nachrichtenbaumstruktur anzeigen möchten, einen Traceknoten ein. Die Anzahl der einfügbaren Traceknoten ist nicht begrenzt. Jeder Knoten bedeutet für die Nachrichtenflussverarbeitung jedoch einen gewissen Systemaufwand.
  4. Legen Sie in den Eigenschaften des Traceknotens fest, dass für die anzuzeigende Nachricht oder einen Teil davon ein Trace durchgeführt werden soll. Die Nachrichtenbereiche werden mit Hilfe von ESQL-Feldreferenzen angegeben. In den folgenden Abschnitten finden Sie mehrere Beispiele.
  5. Wenn Sie einen Traceknoten hinzugefügt haben, um ein bestimmtes Verhalten Ihres Nachrichtenflusses zu untersuchen, und jetzt Ihre Bedenken zerstreut sind oder Sie sich vergewissert haben, dass der Nachrichtenfluss ordnungsgemäß funktioniert, entfernen Sie den/die Traceknoten, und setzen Sie den Nachrichtenfluss erneut ein.

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

Hauptteil der Nachricht
Wenn der Traceknoten die Baumstruktur der Nachricht einschließlich der Eigenschaften und allen Headern schreiben soll, setzen Sie Muster auf $Root. Wenn nur die Nachrichtendaten geschrieben werden sollen, setzen Sie Muster auf ${Body}.

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)
Umgebung
Wenn Sie für die Daten in der Umgebungsbaumstruktur (Environment) einen Trace durchführen möchten, setzen Sie Muster auf ${Environment}. Dadurch wird in etwa folgende Ausgabe generiert:
 (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).

Lokale Umgebung
Wenn Sie für die Daten in der Baumstruktur der lokalen Umgebung einen Trace durchführen möchten, setzen Sie Muster auf ${LocalEnvironment}. Die Ausgabe ähnelt folgendem Beispiel, in dem eine Zieladressenliste angezeigt wird, die innerhalb der Baumstruktur für die lokale Umgebung erstellt wurde:
(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'
      )
    )
  )
)
Ausnahmeliste
Wenn Sie für die Daten in der Ausnahmeliste (ExceptionList) einen Trace durchführen möchten, setzen Sie Muster auf ${ExceptionList}.

Wenn Sie den Fluss-Debugger verwenden, können Sie auch die Nachrichtenstruktur im Nachrichtenfluss sowie sonstige Informationen anzeigen.

Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Logische Baumstruktur
Korrelationsnamen
Fluss-Debugger
Zugehörige Tasks
Einen Nachrichtenfluss entwerfen
Inhalt des Hauptteils einer Nachricht bearbeiten
Sonstige Bereiche der Nachrichtenbaumstruktur bearbeiten
Tests und Debugs für Nachrichtenflussanwendungen ausführen
Zugehörige Verweise
Traceknoten
Struktur der Ausnahmeliste
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac16810_