DE112011100168T5 - Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung - Google Patents

Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung Download PDF

Info

Publication number
DE112011100168T5
DE112011100168T5 DE201111100168 DE112011100168T DE112011100168T5 DE 112011100168 T5 DE112011100168 T5 DE 112011100168T5 DE 201111100168 DE201111100168 DE 201111100168 DE 112011100168 T DE112011100168 T DE 112011100168T DE 112011100168 T5 DE112011100168 T5 DE 112011100168T5
Authority
DE
Germany
Prior art keywords
state
computing environment
data
diagnostic data
invalid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201111100168
Other languages
English (en)
Other versions
DE112011100168B4 (de
Inventor
Andrew Wright
Edward Alan Addison
Philip Robert Lee
Roger Gordon Lewis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011100168T5 publication Critical patent/DE112011100168T5/de
Application granted granted Critical
Publication of DE112011100168B4 publication Critical patent/DE112011100168B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Abstract

Ein Verfahren und eine Vorrichtung in einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung zum Erfassen von Diagnosedaten bereit, die Folgendes umfasst: ein Mittel zum Initiieren einer Programmunterbrechungs-Verzögerungskomponente mit einem Verzögerungsschwellwert als Reaktion auf das Ermitteln durch einen Überwacher, dass sich die Datenverarbeitungsumgebung in einem vorbestimmten ungültigen Zustand befindet; und ein Mittel zum Aufzeichnen von Diagnosedaten für die Datenverarbeitungsumgebung durch einen ersten Prozessstrang; wobei die Verzögerungseinstellung den Betrieb des Mittels zum Aufzeichnen von Diagnosedaten so lange verzögert, bis der Überwacher ermittelt, dass der vorbestimmte ungültige Zustand das Bestimmen mit der Gesamtanzahl oder über einen Zeitraum hinweg wiederholt hat, die jeweils einem vorbestimmten Indikator entsprechen, dass es sich um einen anderen Zustand als einen Übergangszustand der Datenverarbeitungsumgebung handelt, wobei der Übergangszustand einem Übergang der Datenverarbeitungsumgebung durch einen oder mehrere andere Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand entspricht.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Erfassen von Diagnosedaten in einer Computerumgebung beim Feststellen eines ungültigen Zustands. Insbesondere betrifft sie eine Überprüfung des ungültigen Zustands.
  • Hintergrund der Erfindung
  • Mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebungen sind in der Lage, mehrere Prozessstränge ausgeführter Software gleichzeitig auszuführen. Derartige Umgebungen können mit einem oder mehreren Computersystemen einhergehen, die mehrere Prozessoren oder einzelne Prozessoren enthalten, die mehrere Anweisungen gleichzeitig ausführen können.
  • Das Ermitteln und Lösen von Problemen in derartigen Umgebungen stützt sich auf Software- und Hardware-Tools zur Unterstützung der Diagnose. Üblicherweise ist es möglich, Informationen über den Fluss von Ereignissen durch Software-Code in der Datenverarbeitungsumgebung aufzuzeichnen. In IBM CICS Produkten wird zum Beispiel eine als „CICS Trace” bekannte Einrichtung bereitgestellt (IBM und CICS sind eingetragene Marken von International Business Machines Corporation in den USA und/oder in anderen Ländern). Diese gestattet das Erfassen einer chronologischen Folge von Ereignissen, wenn ein Ausführungsprozessstrang verschiedene Software-Programme in einer Datenverarbeitungsumgebung durchläuft.
  • Manchmal ist es erforderlich, Problemermittlungsdiagnosen zu erfassen, wenn ein bestimmtes Ereignis (bzw. eine Folge von Ereignissen) stattgefunden hat, bei dem bzw. denen die bestehenden, in einer Ablaufverfolgung bereitgestellten Diagnosedaten nicht zum Lösen eines bestimmten Problems ausreichen. Es kann eine Überwachungs- und Diagnoselogik als Software realisiert werden, um den Zustand der Datenverarbeitungsumgebung zu überwachen und Diagnosedaten zu erfassen, wenn ermittelt wird, dass der Zustand einen instabilen, ineffektiven oder fehlerhaften Betriebszustand anzeigt. Derartige Zustände können als ungültige Ausführungszustände bekannt sein. In dem CICS-Beispiel kann man dies unter Verwendung eines als „DFHTRAP” bekannten Programms erreichen, das den Zustand einer Datenverarbeitungsumgebung zu spezifischen Ausführungspunkten analysieren und abhängig von dem Zustand der Umgebung zu diesen Zeitpunkten Entscheidungen darüber treffen kann, ob Diagnosedaten zu erfassen sind.
  • In Datenverarbeitungsumgebungen, die so umgesetzt sind, dass sie einen einzelnen Prozessstrang ausführen, wobei lediglich eine einzelne Reihe von Verknüpfungsoperationen gleichzeitig ausgeführt werden kann, kann die den Zustand der Umgebung analysierende Überprüfungs- und Diagnoselogik sicher sein, dass der Zustand zum Zeitpunkt des Analysierens statisch ist. Das bedeutet, dass bei Erkennen eines ungültigen Zustands dieser Zustand einen Fehlerfall darstellt, weshalb es richtig ist, Diagnosedaten dafür zu erfassen.
  • In mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebungen wie in einem CICS-Transaktions-Server mit mehreren offenen Prozesskontrollblöcken (TCBs, task control blocks) kann sich der Zustand der Datenverarbeitungsumgebung möglicherweise jedoch ändern, während die Umgebung überwacht wird. Derartige Zustandsänderungen können stattfinden, da andere Ausführungsprozessstränge als der Überwachungs- und Diagnoseprozessstrang weiterhin ausgeführt werden und den Zustand der Datenverarbeitungsumgebung möglicherweise zur selben Zeit wie der Überwachungsschritt ändern. Dies kann dazu führen, dass die Umgebung als sich in einem ungültigen Zustand befindlich erscheint, obwohl dies in Wirklichkeit durch das gleichzeitige Ändern des Zustands der Umgebung durch einen anderen Prozessstrang verursacht wird.
  • Zu Arbeitsschritten, die in mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebungen problematisch sein können, gehören zum Beispiel: das Hinzufügen oder Entfernen von Listeneinträgen zu bzw. von einer verketteten Listendatenstruktur; das Aktualisieren von Instanzdaten; das Erhöhen oder Herabsetzen von Zählern (zum Beispiel über oder unter Schwellwerte); usw. Derartige Arbeitsschritte führen letztendlich nicht zu einem ungültigen Zustand der Datenverarbeitungsumgebung, sondern können mit dem Durchlaufen eines Übergangszustands einhergehen, der als ungültig angesehen werden kann, wenn er nicht im Kontext des gesamten Arbeitsschritts gesehen wird. So kann zum Beispiel das Hinzufügen eines Eintrags zu einer verketteten Listendatenstruktur für einen Moment zu einem neu erstellten Eintrag in der Liste führen, der nicht initialisierte (und folglich ungültige) Speicherverweise (Hinweisadressen) enthält. Die Überwachungs- und Diagnoselogik könnte beim Analysieren derartiger Daten auf Grund des ungültigen Speicherverweises auf einen ungültigen Zustand schließen, wobei der Zustand in Wirklichkeit lediglich vorübergehend ist, und der Arbeitsschritt mit einem gültigen Listeneintrag ohne ungültige Speicherverweise abgeschlossen wird, wenn man ihn als Teil der gesamten Operation des Hinzufügens eines neuen verketteten Listeneintrags betrachtet. Auf ähnliche Weise kann das Erhöhen eines Zählers, das dazu führt, dass der Zähler einen vorbestimmten Schwellwert überschreitet, vorübergehend dazu führen, dass durch die Überwachungs- und Diagnoselogik ein ungültiger Zustand ermittelt wird, da der Schwellwert überschritten ist. Tatsächlich ist der Zustand lediglich vorübergehend und der Arbeitsschritt wird mit einem gültigen Zustand abgeschlossen, wenn man ihn als Teil des gesamten Arbeitsschritts des Erhöhens eines Zählers und des Überprüfens auf das Nichteinhalten eines Schwellwerts vor dem Zurücksetzen des Zählers betrachtet. Entsprechend können falsche positive Ermittlungen eines ungültigen Zustands durch die Überwachungs- und Diagnoselogik in mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebungen auftreten und zu einem unnötigen Erfassen von Diagnosedaten führen.
  • In einer ausgelasteten Produktionsumgebung wie einer Online-Transaktionsverarbeitungsumgebung wie CICS kann das Erfassen von unnötigen Diagnosedaten zu einer wesentlichen Verschlechterung der Leistungsfähigkeit führen. Die offensichtliche Lösung liegt darin, die Datenverarbeitungsumgebung während des Überwachungs- und Diagnoseschritts zu synchronisieren, beispielsweise durch das Zwingen der Umgebung, alle anderen Prozessstränge außer den Überwachungs- und Diagnoseprozessstrang auszusetzen, während die Überwachungs- und Diagnoselogik ausgeführt wird. Durch eine derartige Synchronisation werden der Datenverarbeitungsumgebung nicht praktikable Leistungsengpässe auferlegt, da sämtliche Prozessstränge bei jedem Überwachungsvorgang ausgesetzt werden, was zu einer mangelhaften Leistungsfähigkeit führt.
  • Entsprechend ist es derzeit nicht möglich, Diagnosedaten für ungültige Zustände einer Datenverarbeitungsumgebung zu erfassen, ohne möglicherweise auch Diagnosedaten auf Grund von gültigen vorübergehenden Änderungen des Zustands der Umgebung zu erfassen und dadurch eine sich aus der unnötigen Erfassung von Diagnosedaten ergebende Verschlechterung der Leistungsfähigkeit zu verursachen.
  • Zusammenfassung der Erfindung
  • In einem ersten Aspekt stellt die vorliegende Erfindung entsprechend ein Verfahren in einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung zum Erfassen von Diagnosedaten bereit, wobei das Verfahren die folgenden Schritte umfasst: Initiieren einer Programmunterbrechungs-Verzögerungskomponente (trap delay component) mit einem ersten Verzögerungsschwellwert als Reaktion auf das Ermitteln durch einen Überwacher, dass sich die Datenverarbeitungsumgebung in einem vorbestimmten ungültigen Zustand befindet; und Aufzeichnen von Diagnosedaten für die Datenverarbeitungsumgebung durch einen ersten Prozessstrang; wobei die Programmunterbrechungs-Verzögerungskomponente den Schritt des Aufzeichnens von Diagnosedaten so lange verzögert, bis der Überwacher ermittelt, dass der vorbestimmte ungültige Zustand für eine Gesamtanzahl und/oder über einen Zeitraum hinweg wiederholt wurde, die jeweils einem vorbestimmten Indikator entsprechen, dass es sich um einen anderen Zustand als einen Übergangszustand der Datenverarbeitungsumgebung handelt, wobei der Übergangszustand einem Übergang der Datenverarbeitungsumgebung durch einen oder mehrere andere Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand entspricht.
  • Vorzugsweise wird der vorbestimmte ungültige Zustand durch die Dateninhalte in einem Datenspeicher der Datenverarbeitungsumgebung angezeigt. Bei den vorbestimmten ungültigen Zustandsdaten kann es sich um beschädigte oder unvollständige Daten handeln. Der vorbestimmte ungültige Zustand kann durch eine Folge von Ereignissen angezeigt werden, die in der Datenverarbeitungsumgebung stattfinden. Die Folge von Ereignissen kann Verarbeitungsaktionen entsprechen, die in einem oder mehreren Prozesssträngen in der Datenverarbeitungsumgebung stattfinden. Das Verfahren kann ferner das Setzen des vorbestimmten Indikators auf eine Gesamtanzahl des Auftretens des vorbestimmten ungültigen Zustands umfassen. Das Verfahren kann ferner das Setzen des vorbestimmten Indikators auf einen Zeitraum zum Überwachen des Auftretens des vorbestimmten ungültigen Zustands umfassen.
  • In einem zweiten Aspekt stellt die vorliegende Erfindung entsprechend eine Vorrichtung in einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung zum Erfassen von Diagnosedaten bereit, die Folgendes umfasst: ein Mittel zum Initiieren einer Programmunterbrechungs-Verzögerungskomponente mit einem Verzögerungsschwellwert als Reaktion auf das Ermitteln durch einen Überwacher, dass sich die Datenverarbeitungsumgebung in einem vorbestimmten ungültigen Zustand befindet; und ein Mittel zum Aufzeichnen von Diagnosedaten für die Datenverarbeitungsumgebung durch einen ersten Prozessstrang; wobei die Programmunterbrechungs-Verzögerungskomponente den Betrieb des Mittels zum Aufzeichnen von Diagnosedaten so lange verzögert, bis der Überwacher ermittelt, dass der vorbestimmte ungültige Zustand für eine Gesamtanzahl und/oder über einen Zeitraum hinweg wiederholt wurde, die jeweils einem vorbestimmten Indikator entsprechen, dass es sich um einen anderen Zustand als einen Übergangszustand der Datenverarbeitungsumgebung handelt, wobei der Übergangszustand einem Übergang der Datenverarbeitungsumgebung durch einen oder mehrere andere Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand entspricht.
  • In einem dritten Aspekt stellt die vorliegende Erfindung entsprechend eine Vorrichtung bereit, die Folgendes umfasst: eine zentrale Verarbeitungseinheit; ein Speicherteilsystem; ein Eingabe/Ausgabe-Teilsystem; und ein Busteilsystem, das die zentrale Verarbeitungseinheit, das Speicherteilsystem, das Eingabe/Ausgabe-Teilsystem miteinander verbindet; und die wie oben beschriebene Vorrichtung.
  • In einem vierten Aspekt stellt die vorliegende Erfindung entsprechend ein Computerprogrammelement bereit, das Computerprogrammcode umfasst, der, wenn er in ein Computersystem geladen und darauf ausgeführt wird, bewirkt, dass der Computer die Schritte eines wie oben beschriebenen Verfahrens durchführt.
  • Kurze Beschreibung der Zeichnungen
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nachfolgend ausführlicher lediglich beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
  • 1 ein Blockschaltbild einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung nach dem Stand der Technik, die eine Überwachungs- und Diagnoselogik zum Sammeln von Diagnosedaten, wenn sich die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung in einem ungültigen Zustand befindet, enthält;
  • 2 ein Blockschaltbild eines Computersystems, das für den Betrieb von Ausführungsformen der vorliegenden Erfindung geeignet ist;
  • 3 ein Blockschaltbild einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung, die eine Überwachungs- und Diagnoselogik zum Sammeln von Diagnosedaten, wenn sich die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung in einem ungültigen Zustand befindet, enthält; und
  • 4 einen Ablaufplan des Betriebs der Überwachungs- und Diagnoselogik aus 3 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • 1 zeigt ein Blockschaltbild einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung 102 nach dem Stand der Technik, die eine Überwachungs- und Diagnoselogik 108 zum Sammeln von Diagnosedaten 118, wenn sich die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung in einem ungültigen Zustand befindet, enthält. Die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung 102 enthält mehrere Software-Prozessstränge 106, 114, 116. Jeder Prozessstrang ist ein einzelner Software-Ausführungsstrom und enthält Software-Befehle. Die Prozessstränge 106, 114, 116 können auch Prozessstrangdaten enthalten, die normalerweise in einem als Speicher-Stack bekannten Speicherbereich in einem Computersystem gespeichert sind. Die Prozessstränge 106, 114, 116 werden im Wesentlichen gleichzeitig in einem oder mehreren Computersystemen wie einem Mehrfachprozessor-Computersystem, einem eine Vielzahl von Unterprozessoren für das gleichzeitige Ausführen mehrerer Software-Befehle umfassenden System (wie einem Mehrkernprozessor) oder einer Datenverarbeitungsumgebung ausgeführt, die mehrere für den Datenaustausch verbundene Computersysteme zum Ausführen einer oder mehrerer Software-Anwendungen enthält. Alternativ können die Prozessstränge 106, 114, 116 in einem Einzelprozessor auf gemultiplexter oder kanalisierter Grundlage ausgeführt werden, so dass der Einzelprozessor von den mehreren Prozesssträngen gemeinsam genutzt wird, so dass die Prozessstränge im Wesentlichen gleichzeitig ausgeführt werden können, während einzelne Anweisungen nacheinander verarbeitet werden. Eine Verarbeitungseinheit kann ihre Verarbeitung zum Beispiel zwischen den mehreren Prozesssträngen auf Grundlage von zyklischem Warteschlangenbetrieb, zeitlich gestaffelt oder prioritätsgesteuert aufteilen.
  • Der erste Prozessstrang 106 enthält das Ausführen der Überwachungs- und Diagnoselogik 108, welche das Ausführen der kompletten Datenverarbeitungsumgebung 102 oder Teilen davon auf problematische, ungültigen Zuständen entsprechende Betriebszustände hin überwacht. Der erste Prozessstrang 106 kann speziell für die Überwachungs- und Diagnoselogik 108 vorgesehen sein. Alternativ kann die Überwachungs- und Diagnoselogik 108 als Teil des Prozessstrangs 106 ausgeführt werden, der auch zum Ausführen von anderen Software-Operationen wie Software-Anwendungsoperationen verwendet wird. Die Überwachungs- und Diagnoselogik 108 kann zum Beispiel periodisch gemäß einem vorbestimmten Zeitplan ausgeführt werden bzw. wenn die Bedingungen in der Datenverarbeitungsumgebung es zulassen, wie zum Beispiel wenn die Arbeitslast der Umgebung ausreichend hoch oder niedrig ist.
  • Die Überwachungs- und Diagnoselogik 108 enthält einen Zustandsüberwacher 110, bei dem es sich um eine Software-Routine zum Überwachen der Ausführung von Software-Operationen in den Prozesssträngen 106, 114 und 116 zum Erkennen eines ungültigen Zustands handelt. Des Weiteren überwacht der Zustandsüberwacher 110 einen oder mehrere Datenspeicher (nicht abgebildet) für die Datenverarbeitungsumgebung 102 wie flüchtige oder nichtflüchtige, der Datenverarbeitungsumgebung 102 zugehörige Speicher auf ungültige Zustände. Derartige Speicher enthalten zum Beispiel einen oder mehrere Speicher-Heaps für die Datenverarbeitungsumgebung 102.
  • Auf diese Weise ist der Zustandsüberwacher 110 in der Lage, ungültige Zustände zu ermitteln, die in zwei allgemeine Kategorien fallen: ungültige Zustände, die durch die Dateninhalte in einem Datenspeicher der Datenverarbeitungsumgebung angezeigt werden, z. B. beschädigt oder unvollständig scheinende Daten; und ungültige Zustände, die durch eine Folge von in der Datenverarbeitungsumgebung 102 stattfindenden Ereignissen angezeigt werden, z. B. Verarbeitungsaktionen, die in einem oder mehreren Prozesssträngen in der Datenverarbeitungsumgebung 102 stattfinden und fehlerhaft sind bzw. auf einen fehlerhaften Zustand hinweisen.
  • Der Zustandsüberwacher 110 erkennt einen ungültigen Zustand der Datenverarbeitungsumgebung 102 in Bezug auf vorbestimmte Informationen über ungültige Zustände 104, die eine Definition von Regeln, Kriterien bzw. Eigenschaften ungültiger Zustände für die Datenverarbeitungsumgebung 102 bereitstellen. Die Informationen über ungültige Zustände 104 können in einem Speicher der Datenverarbeitungsumgebung wie einem flüchtigen oder nichtflüchtigen Speicher, einem Heap-Speicher, auf Platte oder Band, in einem Flash-Speicher oder jedem beliebigen anderen geeigneten Speicher gespeichert sein. Die Informationen über ungültige Zustände 104 können in einem strukturierten Datenformat wie einer Datenstruktur oder alternativ in einem analysierbaren Format wie XML oder einem anderen semantischen Datenformat organisiert sein. Außerdem können die Informationen über ungültige Zustände 104 in einer Datenbank gespeichert sein.
  • Die Informationen über ungültige Zustände 104 sind dafür geeignet, den Zustandsüberwacher 110 bei dem Erkennen von ungültigen Zuständen der Datenverarbeitungsumgebung 102 in den beiden allgemeinen, oben beschriebenen Kategorien von ungültigen Zuständen zu unterstützen. Ein durch die Dateninhalte in einem Datenspeicher. der Datenverarbeitungsumgebung 102 angezeigter ungültiger Zustand kann in den Informationen über ungültige Zustände 104 zum Beispiel als eine Reihe von ungültige Daten kennzeichnenden Kriterien dargestellt sein. Ein ungültiger Verweis (wie eine Hinweisadresse) kann eine Speicheradresse enthalten, die sich außerhalb eines aufrufbaren Bereichs befindet oder die auf einen Speicherplatz in einem sicheren oder geschützten Speicherbereich hinweist, der nicht direkt aufrufbar ist bzw. sein sollte. Die Informationen über ungültige Zustände 104 können Angaben über ungültige Speicherverweise enthalten, so dass der Zustandsüberwacher 110 derartige ungültige Speicherverweise in einem Datenspeicher der Datenverarbeitungsumgebung 102 erkennen kann, um einen ungültigen Datenzustand zu erkennen.
  • In einem zweiten Beispiel kann ein auf Grund einer Überschreitung eines vorbestimmten Schwellwerts durch ein Zählerdatenelement auftretender ungültiger Zustand in den Informationen über ungültige Zustände 104 dargestellt werden, indem der gültige Bereich oder Höchst- bzw. Mindestwerte des Zählers gekennzeichnet werden, so dass der Zustandsüberwacher 110 ungültige Zählerwerte in einem Datenspeicher der Datenverarbeitungsumgebung 102 erkennen kann, um einen ungültigen Datenzustand zu erkennen.
  • In einem dritten Beispiel kann ein ungültiger Zustand, der auf Grund einer Folge von Ereignissen auftritt, die mit dem Ausführen von Fehler- bzw. Ausnahmebewältigungs- oder -abfangoperationen einhergehen, in den Informationen über ungültige Zustände 104 dargestellt werden, so dass der Zustandsüberwacher 110 Folgen von Ereignissen erkennen kann, die derartige Operationen enthalten, um einen ungültigen Zustand (zum Beispiel gemäß einem Fehler- bzw. Ausnahmezustand) in der Datenverarbeitungsumgebung 102 zu erkennen.
  • Die Überwachungs- und Diagnoselogik 108 enthält ferner das Diagnosedaten-Erfassungstool 112, das so gestaltet ist, dass es als Reaktion darauf, dass der Zustandsüberwacher 110 feststellt, dass sich die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung 102 in einem ungültigen Zustand befindet, Diagnosedaten 118 erfasst. Das Diagnosedaten-Erfassungstool 112 empfängt, liest oder ermittelt Diagnosedaten aus der Datenverarbeitungsumgebung 102, darunter in der Datenverarbeitungsumgebung 102 gespeicherte Daten und darin ausgeführte Prozessstränge. Die Diagnosedaten können zum Beispiel als in einem Speicher der Datenverarbeitungsumgebung 102 aufgezeichneter Datenzustand gelesen werden oder als Reaktion auf von dem Diagnosedaten-Erfassungstool 112 ausgegebene Datenanforderungen von Prozesssträngen empfangen werden oder von dem Diagnosedaten-Erfassungstool 112 auf der Grundlage von verfügbaren, lesbaren oder durch das Tool empfangbaren Daten ermittelt werden. Als von dem Diagnosedaten-Erfassungstool 112 als Diagnosedaten 118 aufgezeichnete Daten können Folgendes enthalten: Datenausgaben (data dumps) wie Speicherausgaben (memory dumps), darunter Stack-, Heap- und andere Speicherausgaben; Stack-Verfolgungsdaten; Prozessstrangdaten, darunter Prozessstrangdatenausgaben, die Prozessstrangzustandsdaten aufzeichnen; Prozess- und Ressourcendaten, darunter Daten über den Zustand von Speicher, Platten, Peripheriegeräten sowie andere Daten, wie einem Fachmann bekannt ist. Die Diagnosedaten 118 werden in einem Datenspeicher wie einem geeigneten nichtflüchtigen oder flüchtigen Speicher bzw. einer derartigen Speichereinheit aufgezeichnet.
  • Folglich überwacht die Überwachungs- und Diagnoselogik 108 über den Zustandsüberwacher 110 in der in 1 abgebildeten Anordnung nach dem Stand der Technik den Zustand der Datenverarbeitungsumgebung 102, darunter gespeicherte Daten und in den Prozesssträngen 106, 114 bzw. 116 auftretende Arbeitsschritte, um einen ungültigen Zustand gemäß den Informationen über ungültige Zustände 104 zu erkennen. Wenn der Zustandsüberwacher 110 einen ungültigen Zustand erkennt, empfängt, liest oder ermittelt das Diagnosedaten-Erfassungstool 112 Diagnosedaten in der Datenverarbeitungsumgebung und speichert die Diagnosedaten in einem Diagnosedatenspeicher 118. In der Anordnung nach dem Stand der Technik aus 1 ist es nicht möglich, Diagnosedaten für ungültige Zustände einer Datenverarbeitungsumgebung zu erfassen, ohne möglicherweise auch Diagnosedaten auf Grund von gültigen vorübergehenden Änderungen des Zustands der Umgebung zu erfassen und dadurch eine sich aus der unnötigen Erfassung von Diagnosedaten ergebende Verschlechterung der Leistungsfähigkeit zu verursachen. Insbesondere können vorübergehende Änderungen des Zustands der Umgebung in einem oder beiden der Prozessstränge 114 bzw. 116 zur selben Zeit stattfinden, zu welcher der Prozessstrang 106 Zustandsüberwachungsoperationen durchführt. Bevorzugte Ausführungsformen der vorliegenden Erfindungen versuchen sich dieses Problems anzunehmen, wie nachfolgend in Bezug auf die 2 bis 4 dargelegt ist.
  • 2 zeigt ein Blockschaltbild eines Computersystems, das für den Betrieb von Ausführungsformen der vorliegenden Erfindung geeignet ist. Eine zentrale Verarbeitungseinheit (CPU) 202 ist für den Datenaustausch über einen Datenbus 208 mit einem Speicher 204 und mit einer Eingabe/Ausgabe-(E/A-)Schnittstelle 206 verbunden. Bei dem Speicher 204 kann es sich um jede beliebige Lese-/Schreib-Speichereinheit wie einen Direktzugriffsspeicher (RAM) oder eine nichtflüchtige Speichereinheit handeln. Zu einem Beispiel einer nichtflüchtigen Speichereinheit gehören eine Platten- bzw. Bandspeichereinheit. Bei der E/A-Schnittstelle 206 handelt es sich um eine Schnittstelle zu Einheiten zum Eingeben oder zum Ausgeben von Daten bzw. sowohl zum Eingeben als auch zum Ausgeben von Daten. Zu Beispielen von E/A-Einheiten, die mit der E/A-Schnittstelle 206 verbunden werden können, gehören eine Tastatur, eine Maus, eine Anzeige (z. B. ein Bildschirm) und eine Netzwerkverbindung.
  • 3 zeigt ein Blockschaltbild einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung 302 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung, die eine Überwachungs- und Diagnoselogik 308 zum Sammeln von Diagnosedaten 318, wenn sich die mehrere Prozessstränge gleichzeitig ausführende Datenverarbeitungsumgebung in einem ungültigen Zustand befindet, enthält. Viele der Elemente aus 3 sind identisch mit denen oben in Bezug auf 1 beschriebenen, und die Beschreibung derer wird hier nicht wiederholt. Die Überwachungs- und Diagnoselogik 308 aus 3 enthält ferner die Programmunterbrechungs-Verzögerungskomponente 322 zum Verzögern der Ausführung des Diagnosedaten-Erfassungstools 312, bis ein durch den Zustandsüberwacher 310 erkannter ungültiger Zustand als einem anderen Zustand als ein Übergangszustand der Datenverarbeitungsumgebung 302 entsprechend erkannt wird. Ein Übergangszustand tritt auf Grund eines Übergangs der Datenverarbeitungsumgebung 302 durch Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand auf. Ein derartiger Übergang wird durch andere Prozessstränge als den ersten Prozessstrang 306 verursacht, die gleichzeitig wie der erste Prozessstrang 306 ausgeführt werden, wenn der erste Prozessstrang 306 Überwachungs- und Diagnoseoperationen durchführt. Bei einem gültigen Zustand handelt es sich um einen Zustand, der in Bezug auf die Definitionen eines ungültigen Zustands in den Informationen über ungültige Zustände 304 nicht als ungültiger Zustand ermittelt werden konnte. Bei einem durch den Zustandsüberwacher 310 erkannten ungültigen Zustand kann es sich um einen ungültigen Zustand und einen Übergangszustand handeln, da in der mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung 302 andere, gleichzeitig mit dem Prozessstrang 306 der Überwachungs- und Diagnoselogik 308 ausgeführte Prozessstränge den Zustand der Umgebung 302 beeinflussen können, während die Überwachungs- und Diagnoselogik 308 ausgeführt wird.
  • Zu Beispielen von ungültigen Zuständen, die sich auf Grund eines Übergangs von einem ersten gültigen Zustand in einen zweiten gültigen Zustand ergeben und somit einen ungültigen Zustand aber auch einen Übergangszustand darstellen, gehören:
    • 1. Das Hinzufügen eines Eintrags zu einer verketteten Listendatenstruktur, wenn ein neu erstellter Eintrag in der Liste nicht initialisierte (und folglich ungültige) Speicherverweise (Hinweisadressen) enthält. Während die Speicherverweise nicht initialisiert sind, befindet sich die Datenverarbeitungsumgebung 302 in einem ungültigen Zustand. Der ungültige Zustand tritt jedoch zwischen dem gültigen Zustand, bevor der neue Listeneintrag erstellt wird, und dem gültigen Zustand, nachdem der neue Listeneintrag ordnungsgemäß in die verkettete Listendatenstruktur integriert wurde, auf. Somit stellt der ungültige Zustand einen Übergangszustand zwischen zwei gültigen Zuständen dar.
    • 2. Das Erhöhen eines Zählers, das dazu führt, dass der Zähler einen vorbestimmten Schwellwert überschreitet. Während der Zähler den Schwellwert überschreitet, befindet sich die Datenverarbeitungsumgebung 302 in einem ungültigen Zustand. Der ungültige Zustand tritt jedoch zwischen dem gültigen Zustand des Zählers vor dem Erhöhen und dem gültigen Zustand, nachdem eine Software erkennt, dass der Zähler den Schwellwert überschreitet, und den Zähler zurücksetzt, auf. Somit stellt der ungültige Zustand einen Übergangszustand zwischen zwei gültigen Zuständen dar.
    • 3. Eine Folge von Software-Operationen, die dem Abfangen einer Ausnahme entsprechen, wenn eine Ausnahmebehandlungsroutine umgesetzt ist, um eine fehlgeschlagene Operation zu wiederholen, die anschließend erfolgreich ist. Zu dem Zeitpunkt, zu dem die Ausnahmebehandlungsroutine startet, befindet sich die Datenverarbeitungsumgebung in einem ungültigen Zustand (einem Ausnahmezustand). Der ungültige Zustand tritt jedoch zwischen dem gültigen Zustand vor der Ausnahme und einem gültigen Zustand, nachdem die Ausnahmebehandlungsroutine verarbeitet wird, um die Operation erneut zu versuchen, um einen Erfolg zu erzielen, auf. Somit stellt der ungültige Zustand einen Übergangszustand zwischen zwei gültigen Zuständen dar.
  • Einem Fachmann sind zusätzliche Szenarien bekannt, in denen ein ungültiger Zustand als bloße Folge einer normalen Verarbeitung während eines Übergangszustands zwischen zwei gültigen Zuständen auftritt.
  • Die Programmunterbrechungs-Verzögerungskomponente 322 führt in Bezug auf die Verzögerungseinstellungen 320 eine Programmunterbrechungsverzögerung durch. Die Verzögerungseinstellungen 320 können zeitspezifische, zählerspezifische und prozessstrangspezifische Einstellungen umfassen und sind entsprechend dafür geeignet, eine ausreichend lange Verzögerung des Ausführens des Diagnosedaten-Erfassungstools 312 zu verursachen, um sicherzustellen, dass es sich bei einem durch den Zustandsüberwacher 310 erkannten ungültigen Zustand um keinen oder wahrscheinlich um keinen Übergangszustand handelt. In einer Ausführungsform geht das Verzögern des Ausführens des Diagnosedaten-Erfassungstools 312 zum Beispiel mit dem Verzögern während des Ansammelns von prozessstrangspezifischen, zeitgestempelten Überwachungs- oder Verfolgungseinträgen einher, die anzeigen, dass es sich bei dem ungültigen Zustand um mehr als einen bloßen durch einen anderen Ausführungsprozessstrang verursachten Übergangszustand handelt. Die Verzögerungseinstellungen 320 können zum Beispiel Zählwerte von Einträgen über das Verfolgen ungültiger Zustände über einen Zeitraum hinweg für einen spezifischen Prozessstrang enthalten. Die Verzögerungseinstellungen 320 werden als außerhalb der Überwachungs- und Diagnoselogik 308 gespeichert veranschaulicht, wobei es einem Fachmann klar sein wird, dass diese Regeln an jedem beliebigen Ort und in jedem beliebigen Format zur Verwendung durch die Programmunterbrechungs-Verzögerungskomponente 322 gespeichert werden können, z. B. in einer Datenbank, in einem flüchtigen oder nichtflüchtigen Speicher der Datenverarbeitungsumgebung 302, in Prozessstrangdaten für den ersten Prozessstrang 306, in dem Überprüfer des ungültigen Zustands 322 oder an jedem beliebigen anderen Speicherplatz.
  • Folglich erkennt der Zustandsüberwacher 310 im Betrieb einen ungültigen Zustand der Datenverarbeitungsumgebung 302 unter Bezugnahme auf die Informationen über ungültige Zustände 304 und veranlasst die Programmunterbrechungs-Verzögerungskomponente 322 dazu, das Ausführen des Diagnosedaten-Erfassungstools 312 so lange zu verzögern, bis unter Verwendung der Verzögerungseinstellungen 320 bestätigt wurde, dass es sich bei dem ungültigen Zustand nicht um einen Übergangszustand handelt. Wenn nach dem Ausführen der Programmunterbrechungs-Verzögerungskomponente 322 bestätigt wurde, dass der ungültige Zustand ein anderer Zustand als ein Übergangszustand ist, erfasst das Diagnosedaten-Erfassungstool 312 wie oben beschrieben die Diagnosedaten 318. Auf diese Art erfasst die Überwachungs- und Diagnoselogik 308 die Diagnosedaten 318, wenn es sich bei dem Zustand der Datenverarbeitungsumgebung 302 um einen ungültigen Zustand handelt, aber nicht, wenn es sich bei dem Zustand um einen Übergangszustand zwischen gültigen Zuständen handelt.
  • 4 zeigt einen Ablaufplan des Betriebs der Überwachungs- und Diagnoselogik 308 aus 3 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Der Logikstartpunkt liegt bei dem START-Schritt 400. In Schritt 402 überwacht der Zustandsüberwacher 310 den Zustand der Datenverarbeitungsumgebung 302. In Schritt 404 erkennt der Zustandsüberwacher 310 unter Bezugnahme auf die Informationen über ungültige Zustände 304, dass ein ungültiger Zustand vorliegen kann, und initiiert in Schritt 406 die Programmunterbrechungs-Verzögerungskomponente 322. Die Programmunterbrechungs-Verzögerungskomponente 322 verwendet die Verzögerungseinstellungen 320, um das Ausführen der Diagnosedaten-Erfassungskomponente 312 durch Wiederholen der Schritte 402, 404 und 406 so lange zu verzögern, bis der Zustandsüberwacher 310 über einen Zeitraum hinweg zum Beispiel mehrere Indikatoren eines ungültigen Zustands für den Prozessstrang über einen Zeitraum hinweg oder für eine in den Verzögerungseinstellungen 320 festgesetzte Gesamtanzahl des Auftretens angehäuft hat.
  • Wenn der Zustandsüberwacher 310 in Schritt 406 über einen Zeitraum hinweg mehrere Indikatoren eines ungültigen Zustands für den Prozessstrang oder für eine in den Verzögerungseinstellungen 320 festgesetzte Gesamtanzahl des Auftretens angehäuft hat, hat das System einen Nachweis dafür, dass der ungültige Zustand einem anderen Zustand als einem Übergangszustand der Datenverarbeitungsumgebung 302 entspricht, und veranlasst das Ausführen des Diagnosedaten-Erfassungstools 312 in Schritt 408, um in Schritt 410 Diagnosedaten zu erzeugen. Die Logik endet bei dem ENDE-Schritt 412.
  • Dem Fachmann wird einleuchten, dass das gesamte Verfahren der bevorzugten Ausführungsformen der vorliegenden Erfindung oder Teile davon entsprechend und zweckmäßig in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen ausgeführt werden können, die Logikelemente umfassen, die so angeordnet sind, dass sie die Schritte des Verfahrens durchführen, und dass derartige Logikelemente Hardware-Komponenten, Firmware-Komponenten oder eine Kombination dieser umfassen können.
  • Dem Fachmann wird gleichermaßen einleuchten, dass die gesamte Logikanordnung gemäß den bevorzugten Ausführungsformen der vorliegenden Erfindung oder Teile davon zweckmäßig in einer Logikvorrichtung ausgeführt werden können, die Logikelemente zum Durchführen der Schritte des Verfahrens umfasst, und dass derartige Logikelemente Komponenten wie Logikgatter zum Beispiel in einer programmierbaren Logikanordnung oder einer anwendungsspezifischen integrierten Schaltung umfassen können. Derartige Logikanordnungen können ferner in Form von Aktivierungselementen zum vorübergehenden oder dauerhaften Herstellen von Logikstrukturen in einer derartigen Anordnung bzw. Schaltung ausgeführt werden, zum Beispiel unter Verwendung einer virtuellen Hardware-Beschreibungssprache, die unter Verwendung von festen oder übertragbaren Trägermedien übertragen werden kann.
  • Man wird verstehen, dass das oben beschriebene Verfahren bzw. die oben beschriebene Anordnung zweckmäßig auch vollständig oder teilweise durch auf einem oder mehreren (in den Figuren nicht gezeigten) Prozessoren ausgeführte Software durchgeführt werden können, und dass die Software in Form von einem oder mehreren Computerprogrammelementen auf jedem beliebigen geeigneten (ebenfalls nicht in den Figuren gezeigten) Datenträger wie einer magnetischen oder optischen Platte oder dergleichen bereitgestellt werden kann. Kanäle für das Übertragen von Daten können gleichermaßen Speichermedien jeglicher Beschreibungen sowie signalführende Medien wie drahtgebundene oder drahtlose signalführende Medien umfassen.
  • Ein Verfahren wird allgemein als eine in sich selbst konsequente Folge von Schritten angesehen, die zu einem erwünschten Ergebnis führen. Diese Schritte erfordern physische Bearbeitungsvorgänge für physikalische Größen.
  • Normalerweise, wenn auch nicht notwendigerweise, nehmen diese physikalischen Größen die Form von elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen oder anderweitig bearbeitet werden können. Manchmal ist es hauptsächlich aus Gründen der allgemeinen Anwendung praktisch, diese Signale als Bit, Werte, Parameter, Einträge, Elemente, Objekte, Symbole, Zeichen, Begriffe, Zahlen und dergleichen zu bezeichnen. Es sei jedoch angemerkt, dass alle dieser Begriffe und ähnliche Begriffe den entsprechenden physikalischen Größen zuzuordnen sind und es sich lediglich um praktische Bezeichnungen für diese Größen handelt.
  • Die vorliegende Erfindung kann ferner zweckmäßig als Computerprogrammprodukt zur Verwendung mit einem Computersystem ausgeführt werden. Eine derartige Implementierung kann eine Reihe von durch einen Computer lesbaren Anweisungen umfassen, die entweder auf einem physischen Medium wie einem durch einen Computer lesbaren Medium, z. B. eine Diskette, eine CD-ROM, eine ROM oder eine Festplatte, festgehalten sind oder mit einem Modem oder einer anderen Schnittstelleneinheit entweder über ein physisches Medium, darunter optische oder analoge Datenübertragungsleitungen, aber nicht darauf beschränkt, oder nicht physisch mit drahtlosen Techniken, darunter Mikrowelle, Infrarot- oder andere Übertragungstechniken, aber nicht darauf beschränkt, auf ein Computersystem übertragen werden können. Die Reihe von durch einen Computer lesbaren Anweisungen führt die gesamte vorher hierin beschriebene Funktionalität oder Teile davon aus.
  • Ein Fachmann wird verstehen, dass derartige durch einen Computer lesbare Anweisungen in einer Reihe von Programmiersprachen zur Verwendung mit vielen Computerarchitekturen bzw. Betriebssystemen geschrieben sein können. Des Weiteren können derartige Anweisungen unter Verwendung jeder beliebigen aktuellen oder zukünftigen Speichertechnologie gespeichert werden, darunter Halbleiter, magnetisch oder optisch, aber nicht darauf beschränkt, oder sie können unter Verwendung jeder beliebigen aktuellen oder zukünftigen Datenübertragungstechnologie übertragen werden, darunter optisch, per Infrarot oder Mikrowelle, aber nicht darauf beschränkt. Es wird in Betracht gezogen, dass ein derartiges Computerprogrammprodukt als auswechselbares Medium mit zugehöriger gedruckter oder elektronischer Dokumentation zum Beispiel als eingeschweißte Software, vorinstalliert auf einem Computersystem, zum Beispiel auf einem System-ROM oder einer Festplatte, oder über ein Netzwerk wie das Internet bzw. World Wide Web über einen Server oder ein elektronisches schwarzes Brett vertrieben werden kann.
  • Als eine Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines auf einem Computer ausgeführten Verfahrens zum Implementieren eines Dienstes realisiert werden, das Schritte zum Implementieren von Computerprogrammcode umfasst, der die Funktion besitzt, das Computersystem dazu zu veranlassen, sämtliche Schritte des Verfahrens durchzuführen, wenn er in einer Computerinfrastruktur implementiert und darin ausgeführt wird.
  • Als weitere Alternative kann die bevorzugte Ausführungsform der vorliegenden Erfindung in Form eines Datenträgers realisiert werden, auf dem sich funktionale Daten befinden, wobei die funktionalen Daten funktionale Computerdatenstrukturen umfassen, die ein Computersystem in die Lage versetzen, sämtliche Schritte des Verfahrens durchzuführen, wenn sie in das Computersystem geladen und von diesem verarbeitet werden.
  • Einem Fachmann wird einleuchten, dass viele Verbesserungen und Abwandlungen an der oben beschriebenen beispielhaften Ausführungsform vorgenommen werden können, ohne von dem Umfang der vorliegenden Erfindung abzuweichen.

Claims (11)

  1. Verfahren zum Betreiben einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung zum Erfassen von Diagnosedaten, wobei das Verfahren die Folgenden Schritte umfasst: Initiieren einer Programmunterbrechungs-Verzögerungskomponente mit einem ersten Verzögerungsschwellwert als Reaktion auf das Ermitteln durch einen Überwacher, dass sich die Datenverarbeitungsumgebung in einem vorbestimmten ungültigen Zustand befindet; und Aufzeichnen von Diagnosedaten für die Datenverarbeitungsumgebung durch einen ersten Prozessstrang; wobei die Programmunterbrechungs-Verzögerungskomponente den Schritt des Aufzeichnens von Diagnosedaten so lange verzögert, bis der Überwacher ermittelt, dass der vorbestimmte ungültige Zustand für eine Gesamtanzahl und/oder über einen Zeitraum hinweg wiederholt wurde, die jeweils einem vorbestimmten Indikator entsprechen, dass es sich um einen anderen Zustand als einen Übergangszustand der Datenverarbeitungsumgebung handelt, wobei der Übergangszustand einem Übergang der Datenverarbeitungsumgebung durch einen oder mehrere andere Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand entspricht.
  2. Verfahren nach Anspruch 1, bei dem der vorbestimmte ungültige Zustand durch die Dateninhalte in einem Datenspeicher der Datenverarbeitungsumgebung angezeigt wird.
  3. Verfahren nach Anspruch 2, bei dem die Daten beschädigt sind.
  4. Verfahren nach Anspruch 2, bei dem die Daten unvollständig sind.
  5. Verfahren nach Anspruch 1, bei dem der ungültige Zustand durch eine Folge von Ereignissen angezeigt wird, die in der Datenverarbeitungsumgebung stattfinden.
  6. Verfahren nach Anspruch 5, bei dem die Folge von Ereignissen Verarbeitungsaktionen entsprechen, die in einem oder mehreren Prozesssträngen in der Datenverarbeitungsumgebung stattfinden.
  7. Verfahren nach einem der vorhergehenden Ansprüche, das ferner das Setzen des vorbestimmten Indikators auf eine Gesamtanzahl des Auftretens des vorbestimmten ungültigen Zustands umfasst.
  8. Verfahren nach einem der vorhergehenden Ansprüche, das ferner das Setzen des vorbestimmten Indikators auf einen Zeitraum zum Überwachen des Auftretens des vorbestimmten ungültigen Zustands umfasst.
  9. Vorrichtung in einer mehrere Prozessstränge gleichzeitig ausführenden Datenverarbeitungsumgebung zum Erfassen von Diagnosedaten, wobei die Vorrichtung Folgendes umfasst: ein Mittel zum Initiieren einer Programmunterbrechungs-Verzögerungskomponente mit einem Verzögerungsschwellwert als Reaktion auf das Ermitteln durch einen Überwacher, dass sich die Datenverarbeitungsumgebung in einem vorbestimmten ungültigen Zustand befindet; und ein Mittel zum Aufzeichnen von Diagnosedaten für die Datenverarbeitungsumgebung durch einen ersten Prozessstrang; wobei die Programmunterbrechungs-Verzögerungskomponente den Betrieb des Mittels zum Aufzeichnen von Diagnosedaten so lange verzögert, bis der Überwacher ermittelt, dass der vorbestimmte ungültige Zustand für eine Gesamtanzahl und/oder über einen Zeitraum hinweg wiederholt wurde, die jeweils einem vorbestimmten Indikator entsprechen, dass es sich um einen anderen Zustand als einen Übergangszustand der Datenverarbeitungsumgebung handelt, wobei der Übergangszustand einem Übergang der Datenverarbeitungsumgebung durch einen oder mehrere andere Prozessstränge von einem ersten gültigen Zustand in einen zweiten gültigen Zustand entspricht.
  10. Vorrichtung, die Folgendes umfasst: eine zentrale Verarbeitungseinheit; ein Speicherteilsystem; ein Eingabe/Ausgabe-Teilsystem; und ein Busteilsystem, das die zentrale Verarbeitungseinheit, das Speicherteilsystem, das Eingabe/Ausgabe-Teilsystem miteinander verbindet; und die Vorrichtung nach Anspruch 9.
  11. Computerprogramm, das Computerprogrammcode umfasst, der, wenn er in ein Computersystem geladen und darauf ausgeführt wird, den Computer dazu veranlasst, die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 8 durchzuführen.
DE112011100168.1T 2010-03-16 2011-03-15 Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung Active DE112011100168B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10156667 2010-03-16
EP101566677 2010-03-16
PCT/EP2011/053886 WO2011113828A1 (en) 2010-03-16 2011-03-15 Diagnostic data capture in a computing environment

Publications (2)

Publication Number Publication Date
DE112011100168T5 true DE112011100168T5 (de) 2012-10-31
DE112011100168B4 DE112011100168B4 (de) 2023-12-14

Family

ID=43827983

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011100168.1T Active DE112011100168B4 (de) 2010-03-16 2011-03-15 Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung

Country Status (6)

Country Link
US (1) US9009537B2 (de)
JP (1) JP5623557B2 (de)
CN (1) CN102792278B (de)
DE (1) DE112011100168B4 (de)
GB (1) GB2491274B (de)
WO (1) WO2011113828A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009537B2 (en) * 2010-03-16 2015-04-14 International Business Machines Corporation Diagnostic data capture in a computing environment
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters
CN104239168B (zh) * 2013-06-09 2018-03-23 腾讯科技(深圳)有限公司 卡顿检测方法和设备
US9535780B2 (en) * 2013-11-18 2017-01-03 International Business Machines Corporation Varying logging depth based on user defined policies
US10169130B2 (en) 2016-07-19 2019-01-01 International Business Machines Corporation Tailoring diagnostic information in a multithreaded environment
US11221908B1 (en) * 2021-03-02 2022-01-11 International Business Machines Corporation Discovery of an inexplicit link between a change and an incident in a computing environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371930A (en) * 1980-06-03 1983-02-01 Burroughs Corporation Apparatus for detecting, correcting and logging single bit memory read errors
AU688652B2 (en) * 1994-12-23 1998-03-12 British Telecommunications Public Limited Company Fault monitoring
US7165190B1 (en) * 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
US7849465B2 (en) 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US7225368B2 (en) 2004-04-15 2007-05-29 International Business Machines Corporation Efficient real-time analysis method of error logs for autonomous systems
US7395458B2 (en) * 2004-05-21 2008-07-01 Bea Systems, Inc. Diagnostic instrumentation
US7984220B2 (en) 2004-09-02 2011-07-19 International Business Machines Corporation Exception tracking
US7620852B2 (en) * 2005-03-02 2009-11-17 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
US7814374B2 (en) 2007-01-19 2010-10-12 International Business Machines Corporation System and method for the capture and preservation of intermediate error state data
US20090320021A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies
US8489938B2 (en) 2009-09-18 2013-07-16 International Business Machines Corporation Diagnostic data capture in a computing environment
US9009537B2 (en) * 2010-03-16 2015-04-14 International Business Machines Corporation Diagnostic data capture in a computing environment

Also Published As

Publication number Publication date
WO2011113828A1 (en) 2011-09-22
GB2491274B (en) 2016-03-30
US9009537B2 (en) 2015-04-14
JP2013522741A (ja) 2013-06-13
US20130013963A1 (en) 2013-01-10
DE112011100168B4 (de) 2023-12-14
JP5623557B2 (ja) 2014-11-12
CN102792278B (zh) 2015-09-16
GB201209514D0 (en) 2012-07-11
GB2491274A (en) 2012-11-28
CN102792278A (zh) 2012-11-21

Similar Documents

Publication Publication Date Title
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE112011100168B4 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE112010004565T5 (de) System, Verfahren und Programm zur Prüfung der Konsistenz von Zeigern in einer Hierarchischen Datenbank
EP2962205B1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion
DE202017106569U1 (de) Analyse grossangelegter Datenverarbeitungsaufträge
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102014102551A1 (de) Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen
DE112016006297T5 (de) Testfall-Erzeugungsvorrichtung und Testfall-Erzeugungsprogramm
DE112012000245T5 (de) Aktivitätsaufzeichnungssystem für eine parallele Softwareumgebung
DE112011101759T5 (de) Sampling von Leerlauftransitionen
DE102013015936A1 (de) Architektur zur ablaufprotokollbasierten Messung
DE112011104830T5 (de) Ein Verfahren zum Sicherstellen der Programmkorrektheit unter Verwendung von feingranularem spekulativem Hardwareausführen
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE112015003759B4 (de) Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung
EP3134842B1 (de) Rechenvorrichtung und verfahren zum erkennen von angriffen auf ein technisches system anhand von ereignissen einer ereignisfolge
DE102017004348A1 (de) Verfahren zur Computer gestützten, automatisierten Überprüfung von Software-Anforderungen
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
DE112017006528T5 (de) Angriff/abnormalität-detektionsvorrichtung, angriff/abnormalität-detektionsverfahren und angriff/abnormalität-detektionsprogramm
DE102013022137A1 (de) Mehrstufige Ablaufprotokollierung
DE102016116221A1 (de) Verfahren und Einrichtung zur Überwachung der Ausführung eines Programmcodes
EP3173928B1 (de) Verfahren und vorrichtung zum überprüfen eines komponentenfehlerbaums
EP2329374A1 (de) Testmodul und verfahren zum testen einer o/r-abbildungs-middleware
DE102017005944B4 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Verletzungen von zyklischen Echtzeitbedingungen in Datenverarbeitungseinheiten und -systemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence