Dieses Thema enthält Lösungsvorschläge für einige der üblichen Probleme, die beim Debuggen von Nachrichtenflüssen auftreten können.
Bevor die Verbindung des Rational Agent Controllers hergestellt werden kann, wird das Zeitlimit überschritten
Szenario: Sie erhalten Fehlernachrichten, die besagen, dass der Rational Agent
Controller-Service nicht starten konnte und dass ein Zeitlimit überschritten wurde, bevor der Rational Agent Controller-Service verbunden wurde.
Erläuterung: Es könnte sein, dass der Rational Agent Controller die falsche Version der JVM verwendet.
Lösung: Stellen Sie sicher, dass eine unterstützte JVM verwendet wird. Um festzustellen, welche JVM verwendet wird, rufen Sie den Befehl java -version auf der Befehlszeile auf. Um das korrekte Ergebnis zu erhalten, muss der java -version-Befehl die ausführbare Datei von Java aufrufen, die zur Verwendung angegeben wurde, als der Rational Agent Controller installiert wurde.
Der Debugger wird beim nächsten Unterbrechungspunkt nicht angehalten
Szenario: Der Message-Flow-Debugger wird beim nächsten Unterbrechungspunkt in Ihrem Nachrichtenfluss nicht angehalten.
Lösung: Gehen Sie folgendermaßen vor:
Überprüfen Sie, ob Ihre Steuerkomponente für den Datenfluss (DataFlowEngine) aktiv ist. Ist dies nicht der Fall, starten Sie sie erneut.
Überprüfen Sie die Eingabewarteschlange. Wenn Ihre Eingabewarteschlange die von der letzten Verwendung des Debuggers übrig gebliebenen Nachrichten enthält, müssen Sie diese löschen, bevor Sie eine neue Nachricht senden.
Die Ausführung einer Nachricht wird an einem Unterbrechungspunkt nicht gestoppt
Szenario: Nach dem Anhängen an den Debugger wird die Ausführung einer Nachricht an einem Unterbrechungspunkt nicht gestoppt.
Erläuterung: Dieser Fehler ist unter Umständen auf einen zeitlichen Ablauffehler zurückzuführen oder auf ein falsches Einstellen der Parameter für eine Debugsitzung.
Lösung: Gehen Sie folgendermaßen vor:
Überprüfen Sie die Einstellungen Ihrer Startkonfiguration und stellen Sie dabei sicher, dass Sie das richtige Nachrichtenflussprojekt, den richtigen Hostnamen und die richtige Nachrichtenflussengine für die Debugsitzung angegeben haben.
Starten Sie die Debugsitzung erneut.
Im Nachrichtenfluss-Editor treten Editierprobleme auf
Szenario: Es treten Editierprobleme auf, wenn Sie den Nachrichtenfluss-Editor verwenden, während Sie Fehler in einem Nachrichtenfluss beheben.
Lösung: Bearbeiten Sie keine Nachrichten, während der Flow-Debugger angehängt ist. Wenn Sie einen Nachrichtenfluss bearbeiten müssen, heben Sie die Verbindung zum Debugger auf, bearbeiten Sie den Nachrichtenfluss, und setzen Sie den Nachrichtenfluss anschließend erneut ein.
Editieren des MQ Nachrichtendeskriptors (MQMD) führt zu unerwartetem Verhalten im Debugger
Szenario: Sie bearbeiten Eigenschaften des Nachrichtendeskriptors (MQMD) im Nachrichtengruppeneditor, was jedoch zu unerwartetem Verhalten beim Debugger führt.
Erläuterung: Wenn Sie den Inhalt des MQMD-Descriptors bearbeiten, nehmen diese Felder einen bestimmten Wertbereich an. Sie müssen diese Bereiche kennen, bevor Sie die Eigenschaften bearbeiten. Wenn Sie nicht explizit den Wert dieser Felder angeben, nehmen sie Standardwerte an, und gewisse Felder wurden in der Nachricht möglicherweise nicht angegeben. Die Werte in den Feldern, die in der Nachricht nicht explizit festgelegt wurden, sind Standardwerte. Ändern Sie diese Werte nur, wenn sie ihre Bedeutung oder den möglichen Wertbereich kennen.
Bei der Fehlerbehebung in Ihrem Nachrichtenfluss können Sie den Nachrichteninhalt nicht sehen
Szenario: Sie verwenden den Debugger für Nachrichtenflüsse und können sehen, wie die Nachricht im Nachrichtenfluss übergeben wird, Sie können jedoch den Inhalt der Nachricht nicht sehen.
Lösung: Öffnen Sie die Ansicht 'Flussdebugnachricht'. Dazu klicken Sie auf Fenster > Sicht anzeigen > Sonstige > Nachrichtenfluss > Flussdebugnachricht, und anschließend klicken Sie auf OK.
Sie können die Namen der Nachrichtenflüsse in der Debugansicht nicht sehen
Szenario: Nach dem Herstellen einer Verbindung zur Ausführungsgruppe können Sie in der Debugansicht die Namen der implementierten Flüsse nicht sehen.
Lösung:
Stoppen Sie den Broker, in dem die Ausführungsgruppe ausgeführt wird.
Starten Sie den Rational Agent Controller erneut, der auf dem gleichen System wie der Broker ausgeführt wird.
Starten Sie den Broker erneut.
Sie können die Namen der implementierten Nachrichtenflüsse in der Debugansicht nicht sehen
Szenario: Nach dem Herstellen einer Verbindung zur Ausführungsgruppe können Sie in der Debugansicht die Namen der implementierten Flüsse nicht sehen.
Erläuterung: Es könnte ein Ablauffehler vorliegen.
Lösung: Warten Sie, bis der Broker vollständig gestartet wurde, und versuchen Sie
erneut, eine Verbindung mit dem Debugger herzustellen, oder starten Sie den Rational Agent Controller, der auf demselben Computer wie der Broker ausgeführt wird, erneut, und starten Sie anschließend den Broker erneut.
Während des Debugvorgangs wird über einem Knoten ein Ausrufezeichen angezeigt
Szenario: Im Nachrichtenflusseditor wird während des Debugvorgangs ein
Ausrufezeichen (!) über einem Knoten angezeigt.
Erläuterung: Während des Debugvorgangs ist eine Ausnahmebedingung im
Knoten aufgetreten.
Lösung: Suchen Sie in der Ansicht Variablen von
Ansicht 'Debug' unter 'ExceptionList' nach einer
Fehlernachricht, die den aufgetretenen Fehler beschreibt.
Die von WebSphere MQ unter z/OS gemeldete Einreihungsuhrzeit (PutTime) sowie weitere Uhrzeiten oder Zeitmarken sind inkonsistent
Szenario: Die von WebSphere MQ unter z/OS gemeldete Einreihungsuhrzeit (PutTime) sowie weitere Uhrzeiten oder Zeitmarken sind inkonsistent.
Eine Differenz von ca. 20 Sekunden wurde an folgenden Stellen ermittelt:
Traces (einschließlich der vom Traceknoten entnommenen)
MQPUTTIME-Zeitmarke im MQMD-Header der Nachricht
Aus ESQL entnommene Zeitmarken (beispielsweise in einem Compute-Knoten)
Erläuterung: WebSphere Message Broker meldet die Uhrzeit unter Verwendung der Weltzeit (Coordinated Universal Time, UTC), wobei keine Schaltsekunden berücksichtigt werden. Die unter z/OS von WebSphere MQ im MQMD-Header einer Nachricht gemeldete Nachrichteneinreihungszeit berücksichtigt jedoch Schaltsekunden, indem sie den im CVT-Feld angegebenen Wert für die Anzahl der Sekunden verwendet.
Diese Inkonsistenz kann Folgendes verursachen:
Probleme beim Debugging
Probleme mit Nachrichtenflüssen, wenn Sie den Nachrichtenfluss mithilfe von Zeitmarken steuern möchten
Falsche Informationen
Lösung: Setzen Sie den Wert im CVT-Feld so, dass er mit den Schaltsekunden der Weltzeit übereinstimmt. Alternativ können Sie einen Versatzwert hinzufügen, um das Lesen einer z/OS-Zeitmarke anzupassen. Fügen Sie z. B. 20 Sekunden hinzu, wenn Sie versuchen, die aktuelle Uhrzeit (CURRENT_TIME) in ESQL abzurufen.
Die Verarbeitung einer Nachricht wird an einem Unterbrechungspunkt nicht gestoppt
Szenario: Die Nachrichtenverarbeitung wird fortgesetzt, wenn ein Unterbrechungspunkt auftritt.
Erläuterung: Dieser Fehler ist unter Umständen auf einen zeitlichen Ablauffehler zurückzuführen oder auf ein falsches Einstellen der Parameter für eine Debugsitzung.
Lösung: Überprüfen Sie die Einstellungen Ihrer Startkonfiguration. Stellen Sie sicher, dass Sie das richtige Nachrichtenflussprojekt, den richtigen Hostnamen und die richtige Nachrichtenflussengine für die Debugsitzung angegeben haben. Starten Sie die Debugsitzung erneut.
Sie können nicht sehen, wo sich der Debugger im Nachrichtenzuordnungseditor befindet
Szenario: Der Nachrichtenzuordnungseditor wurde im Toolkit geöffnet, es ist jedoch unklar, wo sich der Debugger in der Zuordnung befindet.
Erläuterung: Der Quellensuchpfad für die Nachrichtenzuordnungsdatei wurde nicht ordnungsgemäß konfiguriert.
Lösung: Überprüfen Sie Ihre Debug-Startkonfigurationseinstellungen, und stellen Sie sicher, dass Sie den Quellensuchpfad für die Nachrichtenzuordnungsdatei ordnungsgemäß konfiguriert haben.
Beim Debugging einer Nachrichtenzuordnung wechselt der Debugger nicht zum nächsten Feld
Szenario: Sie beheben Fehler in einer Nachrichtenzuordnung, und der Debugger wechselt nicht zum nächsten Feld. Sie müssen mehrmals auf die Schaltfläche Step over (Überspringen) klicken.
Erläuterung: Der Quellensuchpfad für die Nachrichtenzuordnungsdatei wurde nicht ordnungsgemäß konfiguriert.
Lösung: Überprüfen Sie Ihre Debug-Startkonfigurationseinstellungen, und stellen Sie sicher, dass Sie den Quellensuchpfad für die Nachrichtenzuordnungsdatei ordnungsgemäß konfiguriert haben.
Beim Debugging einer Nachrichtenzuordnung bewegt sich der Debugger nicht aus dem Mapping-Knoten heraus
Szenario: Sie beheben Fehler in einer Nachrichtenzuordnung, und der Debugger bewegt sich nicht aus der Nachrichtenzuordnung heraus.
Erläuterung: Der Quellensuchpfad für die Nachrichtenzuordnungsdatei wurde nicht ordnungsgemäß konfiguriert.
Lösung: Überprüfen Sie Ihre Debug-Startkonfigurationseinstellungen, und stellen Sie sicher, dass Sie den Quellensuchpfad für die Nachrichtenzuordnungsdatei ordnungsgemäß konfiguriert haben.
Der Nachrichtenfluss stoppt an einem Collector-Knoten
Szenario: Die Nachrichtenverarbeitung stoppt, nachdem das Symbol
'Step into Source Code' (Zum Quellcode springen) auf einem Collector-Knoten ausgewählt wurde.
Erläuterung: Der Collector-Knoten ist ein Multithread-Knoten, und der Thread wird durch die Auswahl von 'Step into Source Code' (Zum Quellcode springen) beendet.
Lösung: Setzen Sie manuell einen Unterbrechungspunkt hinter dem Collector-Knoten.