Debugger für Monitor-Modelle (veraltet)

Mit dem im Lieferumfang von IBM® Business Monitor Development Toolkit enthaltenen Debugger können Sie das Verhalten von Monitormodellen, die Common Event Infrastructure (CEI) verwenden, zur Laufzeit testen. Der Debugger zeigt für jede Definition eines eingehenden Ereignisses oder für jeden zeitbasierten Auslöser im Monitor-Modell die Verarbeitungsschritte an, die beim Empfang eines eingehenden Ereignisses oder beim Start eines zeitbasierten Auslösers auftreten. Ferner werden die Verarbeitungsschritte angezeigt, die zur Aktualisierung von KPIs und Kennzahlen erforderlich sind. Sie können mit dem Debugger auch den Inhalt eingehender Ereignisse beim Empfang, Kennzahlen, Zähler, Stoppuhren und KPIs bei der Erstellung oder Aktualisierung sowie ausgehende Ereignisse, wenn sie mit Daten gefüllt und ausgegeben werden, überprüfen.

Einschränkung: Es werden nur CEI-basierte Monitormodelle für die Verwendung mit dem Debugger unterstützt. Als Alternative können Sie das Monitormodell auf einem zum Testen vorgesehenen Business Monitor-Server implementieren und Testereignisse generieren, um die Verarbeitung des Monitormodells zu testen.

Die folgende Abbildung zeigt ein Monitor-Modell aus der Debugperspektive. Die Sicht Debugger für Quelle ausführen im unteren Teil der Anzeige ist eine Seite des Monitor-Modelleditors. Diese Anordnung ermöglicht es Ihnen, bei der Fehlersuche mit dem Debugger zur Seite 'Monitor-Detailmodell' zu wechseln, um das Modell in einer vertrauteren Ansicht anzeigen und ändern zu können. Sie können Ihre Korrekturen anschließend mithilfe des Debuggers überprüfen, ohne in eine andere Perspektive umzuschalten.

In diesem Screenshot wird jeder Bereich der Debugperspektive angezeigt, wie in der folgenden Tabelle beschrieben.

Die Debugperspektive beinhaltet sieben Bereiche, die Sie für das Debugging verwenden können. Diese Bereiche sind in der Abbildung oben nummeriert und werden in der folgenden Tabelle erläutert.
Ziffer Name Beschreibung
1 Debug

Diese Sicht enthält die Debugkonfiguration, den Server und die Monitoring-Kontextinstanz(en), den KPI-Kontext oder den Würfel, die bzw. der derzeit aktualisiert wird bzw. werden. Verschachtelte Monitoring-Kontexte werden in der Reihenfolge der Verschachtelung aufgeführt. Der aktuelle Monitoring-Kontext erscheint an oberster Stelle in der Liste, der übergeordnete Kontext sowie der diesem Kontext wiederum übergeordnete Kontext darunter.

Das Monitor-Modell wartet so lange auf den Empfang eines eingehenden Ereignisses, bis Sie ein Ereignis gesendet haben. Bis zu diesem Zeitpunkt ist die schrittweise Ausführung inaktiviert. Sie können die untergeordneten Verarbeitungsschritte für die einzelnen Elemente in der Liste 'Übergeordnete Schritte' jedoch trotzdem untersuchen. Dies wird in den folgenden Abschnitten beschrieben.

2 Übergeordnete Schritte in der Sicht Debugger für Quelle ausführen

In der Liste mit den übergeordneten Schritten werden zusammengefasst nach Monitoring-Kontextdefinition alle Definitionen für eingehende Ereignisse und zeitbasierte Auslöser in dem zu testenden Monitor-Modell angezeigt. Es werden ebenso alle KPI-Kontext- und Würfeldefinitionen des Monitor-Modells angezeigt. Sie können die einzelnen Monitoring-Kontextdefinitionen auch vor dem Senden eines Ereignisses öffnen, auf die einzelnen Schritte in der Liste der übergeordneten Schritte klicken und sich über die Verarbeitungsdetails in der Liste der untergeordneten Schritte informieren. In vielen Fällen erhalten Sie dadurch nützliche Informationen über die Logik des Monitor-Modells, die Ihnen das frühzeitige Erkennen von Fehlern im Entwicklungszyklus des Modells erleichtern können.

Die für Definitionen von eingehenden Ereignissen und zeitbasierten Auslösern generierten Verarbeitungsschritte stellen die Auswirkungen dieser Modellelemente in einem Monitoring-Kontext (oder KPI-Kontext) dar. Definitionen von eingehenden Ereignissen und zeitbasierten Auslösern werden aufgelistet, da es sich hier um Elemente handelt, die eine Reihenfolge von Schritten in einem aktiven Monitor-Modell initialisieren können. Die Schritte werden ausgeführt, wenn ein entsprechendes Ereignis eingeht oder ein zeitbasierter Auslöser gestartet wird. Die für einen KPI-Kontext generierten Schritte beinhalten Schritte zur Aktualisierung der Werte für die einzelnen KPIs. Diese Schritte werden nach der Aktualisierung der Monitoring-Kontextinstanzen, die vom aktuellen Ereignis betroffen sind, verarbeitet. Alle Messwertänderungen werden so in dem neuen KPI-Wert widergespiegelt.

Die für Kennzahlen generierten Schritte bewirken eine Berechnung der gesamten Aggregation der zugrunde liegenden Messwerte, unabhängig von möglicherweise vorhandener dimensionaler Filterung. Während in der Liste der übergeordneten Schritte ein einziger Schritt für die Aktualisierung der in einem KPI-Kontext definierten KPIs und die in einem Würfel definierten Kennzahlen angezeigt wird, enthält die entsprechende Liste der untergeordneten Schritte die Schritte für die einzelnen KPIs bzw. Kennzahlen.

Im Produktionsserver werden die zeitbasierten Auslöser in regelmäßigen, im Modell definierten Abständen ausgewertet. Im Debugger bestimmen Sie den Zeitpunkt für die Auswertung der Auslöser.

Die Ereignisdefinitionen werden angezeigt und in der Reihenfolge verarbeitet, in der sie im Monitor-Modell vorliegen. Ereignisdefinitionen in einem übergeordneten Monitoring-Kontext sind Ereignisdefinitionen in untergeordneten Monitoring-Kontexten vorangestellt. Innerhalb eines Monitoring-Kontexts werden die Ereignisdefinitionen nach XML-Dokument geordnet angezeigt.

In diesem Zusammenhang ist insbesondere zu beachten, dass die Verarbeitung sequenziell erfolgt und jede einzelne Ereignisdefinition verarbeitet wird. Die Verarbeitung beginnt mit der Filterbedingung für die erste Ereignisdefinition und wird mit der zweiten Ereignisdefinition etc. fortgesetzt. Jedes einzelne eingehende Ereignis wird mit allen Ereignisdefinitionen abgeglichen und anschließend von keiner oder mehreren der Ereignisdefinitionen zur Verarbeitung akzeptiert. Für jede einzelne Ereignisdefinition, die das Ereignis akzeptiert, werden die Verarbeitungsschritte ausgeführt, die in der Liste der untergeordneten Schritte angegeben sind.

3 Untergeordnete Schritte in der Sicht Debugger für Quelle ausführen

Die Liste der untergeordneten Schritte enthält die Verarbeitungsschritte für die einzelnen Definitionen für eingehende Ereignisse und zeitbasierte Auslöser sowie für die einzelnen KPI-Kontextdefinitionen und Würfeldefinitionen. Klicken Sie auf einen Schritt, um weitere Details (soweit verfügbar) anzuzeigen, z. B. die Filterbedingung für die Definition eines eingehenden Ereignisses oder einen Ausdruck, der den Wert eines Messwerts aktualisiert.

Der erste Schritt für die einzelnen Definitionen für eingehende Ereignisse besteht darin, das eingehende Ereignis mit der Filterbedingung abzugleichen. Bei der Filterbedingung handelt es sich um einen Ausdruck, der je nach Inhalt des Ereignisses als wahr oder falsch bewertet wird. Um z. B. die Ereignisse auszuwählen, die eingehende Bestellungen melden, deren Auftragsvolumen über 500 USD und/oder deren Bestelldatum innerhalb eines bestimmten Zeitraums liegt, müssen Sie eine Filterbedingung definieren, die diese Kriterien überprüft. Erfüllt ein eingehendes Ereignis diese Bedingung nicht, wird es von der nächsten Ereignisdefinition in der Liste der übergeordneten Schritte verarbeitet.

Erfüllt ein Ereignis die Filterbedingung, wird als Nächstes der Korrelationsausdruck ausgewertet. Der Korrelationsausdruck versucht das eingehende Ereignis mit Monitoring-Kontextinstanzen abzugleichen. Je nach Anzahl der übereinstimmenden Instanzen (keine, eine, mehrere) wird die entsprechende im Monitor-Modell definierte Aktion ausgeführt. Typische Aktionen sind z. B. das Zustellen des Ereignisses an eine übereinstimmende Instanz oder das Erstellen einer neuen Instanz, wenn keine Übereinstimmung vorlag. Wird das Ereignis nicht an eine neue oder vorhandene Instanz übergeben, wird die Verarbeitung mit der nächsten Ereignisdefinition in der Liste der übergeordneten Schritte fortgesetzt.

Die übrigen untergeordneten Schritte finden in dem Monitoring-Kontext, KPI-Kontext oder der Würfelinstanz statt, an den/die das Ereignis übergeben wird, und zeigen die Auswirkungen auf die einzelnen Messwerte, Zähler, KPIs, Kennzahlen etc. an. Die für einen KPI-Kontext (oder Würfel) generierten Schritte aktualisieren den Wert für die einzelnen KPIs (oder Kennzahlen). Sie werden nach der Aktualisierung der Monitoring-Kontextinstanzen, die vom aktuellen Ereignis betroffen sind, verarbeitet, so dass alle Messwertänderungen sich in dem neuen Wert für den KPI (oder die Kennzahl) widerspiegeln. Wenn Sie die Ereignisverarbeitung Schritt für Schritt untersuchen möchten, müssen Sie Unterbrechungspunkte bei den Schritten definieren, um die Verarbeitung eines Ereignisses zu unterbrechen und anschließend von diesem Punkt an im Einzelschrittmodus fortzufahren.

4 Unterbrechungspunkte

Die Sicht Unterbrechungspunkte zeigt alle definierten Unterbrechungspunkte an. In dieser Sicht können Sie einzelne Unterbrechungspunkte entfernen, inaktivieren oder aktivieren. Sie können ebenso alle Unterbrechungspunkte gleichzeitig entfernen oder überspringen.

Unterbrechungspunkte, die für andere ausführbare Dateien in Ihrem Arbeitsbereich (z. B. Java™-Programme) definiert wurden, werden in dieser Sicht ebenfalls angezeigt. Sie haben jedoch keine Auswirkungen, während Sie ein Debugging für ein Monitor-Modell durchführen.

5 Instanzen

Die Sicht 'Instanzen' zeigt alle Monitoring-Kontextinstanzen (nicht nur die aktiven) und die zugehörigen Daten an. Sie bietet eine systemweite Sicht der Werte aller Messwerte, Zähler, Stoppuhren usw. im Monitor-Modell.

Die Sicht Instanzen ist nur dann aktiv, wenn ein Ereignis empfangen und die Kontextinstanz erstellt wurde. Eine Änderung der Werte ist in dieser Sicht nicht möglich.

Um die Sicht Instanzen zu aktualisieren und die aktuellen Daten anzuzeigen, klicken Sie auf Aktualisieren Ergänzende Informationen.

Weitere Informationen zur Sicht Instanzen finden Sie im Abschnitt über die Anzeige von Daten während des Debugging.

6 Ereigniswarteschlangen
Die Sicht Ereigniswarteschlangen verfügt über drei Registerkarten.
  • Die Registerkarte Eingabewarteschlange zeigt die Reihenfolge der Ereignisse an, die nach der Verarbeitung des aktuellen Ereignisses an den Debugger gesendet werden. Die Registerkarte 'Eingabewarteschlange' zeigt nicht das Ereignis an, das momentan vom Debugger verarbeitet wird (dieses Ereignis kann auf der Registerkarte 'Variablen' angezeigt werden).
  • Die Registerkarte Wiederholungswarteschlange zeigt die Ereignisse an, die fehlgeschlagen sind, weil der Korrelationsausdruck für ein eingehendes Ereignis keine übereinstimmenden Instanzen zurückgab und weil für die Option bei Nichtvorhandensein von Korrelationsübereinstimmungen die Einstellung 'Wiederholen' angegeben wurde. Sie können Ereignisse von der Wiederholungswarteschlange in die Eingabewarteschlange senden und erneut übergeben. (Sie werden in der Regel Ereignisse erst nach der Verarbeitung anderer Ereignisse, die einige Monitoring-Kontexte erstellen oder aktualisieren, erneut übergeben, damit die wiederholte Übergabe des Ereignisses erfolgreich ist.)
  • Die Registerkarte Fehlerwarteschlange zeigt die Ereignisse an, die fehlgeschlagen sind, weil die Auswertung des Korrelationsausdrucks für ein eingehendes Ereignis entweder keine, genau eine oder mehrere übereinstimmende Instanzen zurückgab und für diesen Fall die Ereigniszustelloption 'Als Fehler behandeln' gewählt wurde. Die Fehlerwarteschlange zeigt außerdem die Ereignisse an, die aus anderen Gründen bei der Verarbeitung fehlgeschlagen sind.

Die Anzahl der Ereignisse in den einzelnen Warteschlangen wird auf der jeweiligen Registerkarte neben dem Warteschlangennamen angezeigt.

Wenn Sie die Ereignisse filtern möchten, geben Sie einen Filtertext in das entsprechende Textfeld ein.

Um die Sicht Ereigniswarteschlange zu aktualisieren und die aktuellen Ereignisse anzuzeigen, klicken Sie auf Aktualisieren Ergänzende Informationen.

Klicken Sie auf Ereignisse klassifizieren Ergänzende Informationen, um die eingehende(n) Ereignisdefinition(en) anzuzeigen, denen die einzelnen Ereignisse entsprechen.

Eine Änderung der Werte ist in dieser Sicht nicht möglich. Weitere Informationen zur Sicht Ereigniswarteschlangen finden Sie im Abschnitt über die Arbeit mit Ereigniswarteschlangen.

7 Variablen

Die Sicht Variablen zeigt die Kontextdaten im Geltungsbereich an, während Sie das Debugging ausführen. Diese Kontextdaten umfassen das eingehende Ereignis und die Monitoring-Kontextinstanz(en), den KPI-Kontext oder den Würfel, das/die/der gerade aktualisiert wird/werden. Wenn Sie Ihr Modell im Debugger schrittweise durchgehen, zeigt die Sicht Variablen die Werte innerhalb dieses Kontextes an. Wenn Sie während der Debugsitzung in einen anderen Kontext wechseln, ändert sich die Sicht Variablen, um den neuen Kontext widerzuspiegeln.

Die Sicht Variablen ist nur dann aktiv, wenn ein eingehendes Ereignis verarbeitet wird. Nach dem Eingang eines Ereignisses können Sie den Inhalt des eingehenden Ereignisses in der Sicht Variablen überprüfen. Sie können ferner ausgehende Ereignisse überprüfen, wenn diese erstellt und vom Debugger ausgegeben werden. Eine Änderung der Werte ist in dieser Sicht nicht möglich.

Weitere Informationen zur Sicht Variablen finden Sie im Abschnitt über die Anzeige von Daten während des Debugging.

Symbolleistensymbole

Nach dem Eingang eines Ereignisses und nach der Unterbrechung der Ereignisverarbeitung an einem Unterbrechungspunkt können Sie eine Aktion ausführen, indem Sie auf die Symbole in der Symbolleiste der Sicht Debug klicken. Erläuterungen zu diesen Symbolen finden Sie in der folgenden Tabelle.
Symbol Name Aktion
Ergänzende Informationen (F5) Step Into Zum nächsten Schritt in der Sequenz der untergeordneten Schritte vorrücken.
Ergänzende Informationen (F6) Step Over Zum nächsten Schritt in der Sequenz der untergeordneten Schritte auf derselben Ebene vorrücken und alle untergeordneten Schritte (soweit vorhanden) ohne Stopp verarbeiten. Klicken Sie z. B. bei dem ersten Verarbeitungsschritt für eine Instanz (nach dem Korrelationsschritt) auf dieses Symbol, um mit dem nächsten Schritt fortzufahren. Alle untergeordneten Schritte (z. B. von einem Auslöser abhängige Schritte) werden ohne Stopp verarbeitet.
Ergänzende Informationen (F7) Step Return Zum nächsten Schritt auf der übergeordneten Ebene vorrücken, nachdem alle verbleibenden Schritte auf der aktuellen Ebene (soweit vorhanden) ohne Stopp verarbeitet wurden. Klicken Sie z. B. bei dem ersten Verarbeitungsschritt für eine Instanz (im Anschluss an den Korrelierungsschritt) auf dieses Symbol, um die Verarbeitung der Schrittsequenz für die aktuelle Instanz abzuschließen und beim ersten Verarbeitungsschritt für die nächste Instanz, die über die Korrelierung ausgewählt wurde, oder (wenn keine weiteren zu verarbeitenden Instanzen vorhanden sind) beim ersten Schritt für die nächste Definition eines eingehenden Ereignisses zu stoppen. Dazu noch ein anderes Beispiel: Klicken Sie bei dem ersten Verarbeitungsschritt für die Definition eines eingehenden Ereignisses auf dieses Symbol, um die gesamte Verarbeitung der Definition dieses eingehenden Ereignisses zu beenden und bei dem ersten Verarbeitungsschritt für die nächste Definition eines eingehenden Ereignisses zu stoppen.
Ergänzende Informationen (F8) Fortsetzen Die Verarbeitung bis zum nächsten verfügbaren Unterbrechungspunkt durchführen. Gibt es keinen Unterbrechungspunkt, wird die Verarbeitung des Ereignisses (und aller nachfolgenden Ereignisse in der Eingabewarteschlange) fortgesetzt, bis sie vollständig abgeschlossen ist.
Ergänzende Informationen Schrittfilter verwenden Der Verarbeitungsablauf wird immer dann unterbrochen, wenn der Debugger auf einen Korrelationsschritt trifft.
Ergänzende Informationen Beenden Die Debugsitzung beenden. Die Sicht Debugger für Quelle durchführen wird geschlossen und Sie können zurück zur Business Monitoring-Perspektive wechseln. Die beendete Sicht wird im oberen linken Bereich der Sicht Debug beibehalten. Sie können die Sicht bereinigen, indem Sie auf Alle beendeten Sitzungen entfernen Ergänzende Informationen klicken.
Ergänzende Informationen Alle beendeten Sitzungen entfernen Die Sicht Debug durch Entfernen der beendeten Debugsitzungen bereinigen.
Eine anschauliche Vorstellung davon, welche Tasten jeweils zu drücken sind, erhalten Sie, wenn Sie sich die Schritte in einer Baumstruktur vorstellen. Dazu ein Beispiel (ohne KPIs und Kennzahlen).
1.  InboundEventDefinition_1
1.1	 |--------Filterbedingung auswerten
1.2	 |--------Korrelationsausdruck auswerten
1.3  |--------(für alle Monitoring-Kontextinstanzen, die das Ereignis empfangen)
1.3.1    |------------- Stoppuhr zurücksetzen
1.3.2    |------------- Zähler counterName erhöhen
1.3.3    |------------- Messwert metricName aktualisieren
1.3.4	   |------------- Auslöser lowThreshold auswerten
1.3.4.1      |-------------- Werte für ausgehendes Ereignis lowThresholdAlert zuordnen
1.3.4.2      |-------------- Ausgehendes Ereignis lowThresholdAlert ausgeben
2.  InboundEventDefinition_2
2.1	 |--------Filterbedingung auswerten
2.2	 |--------Korrelationsausdruck auswerten
2.3  |--------(für alle Monitoring-Kontextinstanzen, die das Ereignis empfangen)
2.3.1    |------------- Zähler counterName erhöhen
2.3.2    |------------- Messwert metricName aktualisieren
3.  TimeBasedTrigger_1
3.1	 |-------Filterbedingung auswerten
3.2	 |-------Korrelationsausdruck auswerten
3.3  |--------(für alle Monitoring-Kontextinstanzen, die das Ereignis empfangen)
3.3.1	   |------------ Auslöser refreshAlert auswerten
3.3.1.1      |------------ Werte für ausgehendes Ereignis refreshAlert zuordnen
3.3.1.2      |------------ Ausgehendes Ereignis refreshAlert ausgeben 
Die Ziffern in der folgenden Tabelle entsprechen den Ziffern in der Baumstruktur und veranschaulichen die Verarbeitungssequenz, die sich ergibt, wenn Sie die Symbole oder Tasten für 'Step Into', 'Step Over' und 'Step Return' ausgehend von verschiedenen Punkten in der gesamten Schrittsequenz verwenden.
Step Into (F5) Ergänzende Informationen Step Over (F6) Ergänzende Informationen Step Return (F7) Ergänzende Informationen
Zum nächsten Schritt vorrücken. Zum nächsten Schritt in der Sequenz auf derselben Ebene vorrücken und alle untergeordneten Schritte (soweit vorhanden) ohne Stopp verarbeiten. Zum nächsten Schritt auf der übergeordneten Ebene vorrücken, nachdem alle verbleibenden Schritte auf der aktuellen Ebene (soweit vorhanden) ohne Stopp verarbeitet wurden.

1.1 > 1.2 > 1.3.1 > 1.3.2 > 1.3.3 > 1.3.4 > 1.3.4.1 > 1.3.4.2 > 2.1 (oder 1.3.1, wenn eine andere zu verarbeitende Instanz in der Sequenz vorliegt)

1.1 > 1.2 > 1.3.1 > 1.3.2 > 1.3.3 > 1.3.4 > 2.1 (oder 1.3.1, wenn eine andere zu verarbeitende Instanz in der Sequenz vorliegt)

1.1 > 2.1 > 3.1

Ein weiteres Beispiel: 1.3.3 > 2.1 (oder 1.3.1, wenn eine andere zu verarbeitende Instanz in der Sequenz vorliegt)