CN102792278A - 计算环境中的诊断数据捕获 - Google Patents

计算环境中的诊断数据捕获 Download PDF

Info

Publication number
CN102792278A
CN102792278A CN2011800138641A CN201180013864A CN102792278A CN 102792278 A CN102792278 A CN 102792278A CN 2011800138641 A CN2011800138641 A CN 2011800138641A CN 201180013864 A CN201180013864 A CN 201180013864A CN 102792278 A CN102792278 A CN 102792278A
Authority
CN
China
Prior art keywords
computing environment
state
data
predetermined
disarmed state
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
CN2011800138641A
Other languages
English (en)
Other versions
CN102792278B (zh
Inventor
A·赖特
R·G·刘易斯
E·A·阿迪森
P·R·李
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 CN102792278A publication Critical patent/CN102792278A/zh
Application granted granted Critical
Publication of CN102792278B publication Critical patent/CN102792278B/zh
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Recording Measured Values (AREA)

Abstract

一种在多线程计算环境中用于捕获诊断数据的方法和设备,包括:响应于监视器确定计算环境处于预定的无效状态而初始化具有延迟阈值的陷阱延迟构件的步骤/装置;通过第一线程来记录计算环境的诊断数据的步骤/装置;其中陷阱延迟构件延迟所述记录诊断数据的步骤/装置的操作,直到所述监视器确定所述预定的无效状态已经重复达总计数或者达对应于预定指示符的时段,所述预定指示符是状态为与所述计算环境的过渡状态不同的状态的指示符,所述过渡状态对应于通过一个或多个其他线程的所述计算环境从第一有效状态到第二有效状态的过渡。

Description

计算环境中的诊断数据捕获
技术领域
本发明涉及计算机环境中在确定无效状态时的诊断数据捕获。特别地,本发明涉及无效状态的验证。
背景技术
多线程计算环境能够同时执行用于执行软件的多个线程。此类环境能够包括包含多个处理器或者能够同时执行多个指令的单个处理器的一个或多个计算机***。
在此类环境中的问题确定和解决利用软件和硬件工具来辅助诊断。典型地,在该计算环境中存在着通过软件代码来记录有关事件流的信息的能力。例如,在IBM CICS产品中,提供了称为“CICS Trace”的功能(IBM和CICS是国际商业机器公司在美国、其他国家或两者的注册商标)。它允许随着执行线程移动通过计算环境中的不同的软件程序而捕获按时间顺序排列的事件序列。
有时,在特定的事件(或事件序列)已出现时需要捕获问题确定诊断,其中在跟踪文件(trace)中提供的现有的诊断数据不足以解决具体的问题。监视和诊断逻辑能够以软件来实现,以监视计算环境的状态并在状态被确定为指示不稳定的、不充分的或错误的操作状态时捕获诊断数据。此类状态能够称为执行的无效状态。在CICS的示例中,这能够使用称为“DFHTRAP”的程序来实现,该DFHTRAP程序能够在其执行的具体点处分析计算环境的状态,并且在那些时间点根据环境的状态作出关于诊断数据是否应当被捕获的判断。
在被实现为以单线程的方式来执行的计算环境(其中一次只能执行单个逻辑操作系列)中,用于分析环境状态的监视和诊断逻辑能够确定该状态在其正在被分析时是静态的。这意味着:如果检测到了无效状态,则它代表着失效的实例,所以为它捕获诊断数据是正确的。
但是,在多线程的计算环境(例如,具有多个开放的任务控制块(TCB)的CICS事务服务器)中,存在有当该环境正受监视时计算环境的状态发生改变的可能性。此类状态改变之所以会发生,是因为与监视和诊断线程不同的执行线程继续执行,并且可能会在与监视操作相同的时间改变计算环境的状态。这能够导致环境看起来像是处于无效状态,而实际上这是另一线程在同一时刻改变环境的状态的结果。
在多线程的计算环境中可能会有问题的操作包括,例如:列表项到链表数据结构的添加或从中去除;实例数据的更新;计数器的递增或递减(例如,在阈值之上或之下)等。此类操作最终并不会导致计算环境的无效状态,而是会涉及转变经过过渡状态,如果不是在总体操作的背景下理解,则该过渡状态会被看作是无效的。例如,链表数据结构的项添加会暂时导致新创建的列表项含有未初始化的(并因此为无效的)存储器引用(指针)。用于分析此类数据的监视和诊断逻辑会由于无效的存储器引用而断定为无效的状态,而实际上该状态只是过渡的,并且当被看作是添加新的链表项的总体操作的一部分时,该操作将会以有效的列表项条目结束,而没有无效的存储器引用。类似地,导致计数器超过预定的阈值的计数器的递增会短暂地导致监视和诊断逻辑因为阈值被超过而关于无效状态的确定。实际上,该状态只是过渡的,并且当被看作是使计数器递增以及在复位计数器之前检查是否突破了阈值的总体操作的一部分时,该操作将会以有效状态结束。因此,监视和诊断逻辑关于无效状态的假阳性确定会在多线程计算环境中出现,并且能够导致不必要的诊断数据收集。
在繁忙的生产环境,例如,像CICS那样的在线事务处理环境中,不必要的诊断数据的捕获会导致性能的严重降低。明显的解决方案是通过例如强迫环境在监视和诊断逻辑执行时暂停除监视和诊断线程外的所有线程来使计算环境在监视和诊断操作期间同步。该同步对计算环境施加了不可行的性能瓶颈,因为所有线程在每次监视发生时都被暂停而导致性能不良。
因此,目前无法在不同样由于环境状态的有效的过渡变化而捕获诊断数据的情况下捕获计算环境的无效状态的诊断数据,所以招致了由不必要的诊断数据收集引起的性能下降。
发明内容
因此,本发明在第一方面提供一种在多线程计算环境中用于捕获诊断数据的方法,该方法包括以下步骤:响应于监视器确定计算环境处于预定的无效状态,初始化具有延迟阈值的陷阱延迟构件;并且通过第一线程来记录计算环境的诊断数据;其中所述陷阱延迟构件延迟所述记录诊断数据的步骤,直到所述监视器确定所述预定的无效状态已经重复达总计数或对应于预定指示符的时段中的至少一种,所述预定指示符是状态是与所述计算环境的过渡状态不同的状态的指示符,所述过渡状态对应于通过一个或多个其他线程的所述计算环境从第一有效状态到第二有效状态的过渡。
优选地,预定的无效状态由在计算环境的数据仓库中的数据内容指示。预定的无效状态数据可以是破坏的或不完全的数据。预定的无效状态可以由在计算环境中发生的事件序列指示。该事件序列可以是对应于在计算环境中的一个或多个线程内发生的处理动作。该方法还可以包括将所述预定指示符设置为所述预定的无效状态的总出现计数。该方法还可以包括将所述预定指示符设置为用于监视所述预定的无效状态的出现的时间段。
因此,本发明在第二方面提供一种用于在多线程计算环境中捕获诊断数据的设备,包括:响应于监视器确定计算环境处于预定的无效状态而初始化具有延迟阈值的陷阱延迟构件的装置;以及通过第一线程来记录计算环境的诊断数据的装置;其中所述陷阱延迟构件延迟所述记录诊断数据的装置的操作,直到所述监视器确定所述预定的无效状态已经重复达总计数或对应于预定指示符的时段中的至少一种,所述预定指示符是指示状态是与所述计算环境的过渡状态不同的状态的指示符,所述过渡状态对应于通过一个或多个其他线程的所述计算环境从第一有效状态到第二有效状态的过渡。
因此,本发明在第三方面提供一种设备,包括:中央处理单元;存储器子***;输入/输出子***;以及使中央处理单元、存储器子***、输入/输出子***互连的总线子***;以及上述设备。
因此,本发明在第四方面提供一种计算机程序元件,包含在装载到计算机***内并在其上执行时使得计算机执行以上所述的方法的步骤的计算机程序代码。
附图说明
本发明的优选实施例将通过示例(仅作示例)的方式参照附图详细地描述,在附图中:
图1是包括根据现有技术的用于在多线程计算环境处于无效状态时收集诊断数据的监视和诊断逻辑的多线程计算***的框图;
图2是适用于本发明的实施例的操作的计算机***的框图;
图3是包括根据本发明的一种优选实施例的用于在多线程计算环境处于无效状态时收集诊断数据的监视和诊断逻辑的多线程计算环境的框图;以及
图4是根据本发明的一种优选实施例的图3的监视和诊断逻辑的操作的流程图。
具体实施方式
图1是根据现有技术的包括用于在多线程计算环境处于无效状态时收集诊断数据118的监视和诊断逻辑108的多线程计算环境102的框图。多线程计算环境102包括多个软件线程106、114、116。每个线程都是独立的软件执行流,并且包括软件指令。线程106、114、116还能够包括正常存储于计算机***中被称为存储体的存储区域内的线程数据。线程106、114和116基本上同时在一个或多个计算机***(例如,多处理器计算机***)、包括用于同时执行多条软件指令的多个子处理器的***(例如,多核处理器)或者具有为执行一个或多个软件应用而通信连接的多个计算机***的计算环境中执行。作为替换,线程106、114和116能够在基于多路复用或管道的单个处理器内执行,使得该单个处理器在多个线程之间共享,从而使这些线程能够在个体指令一次处理一条的情况下基本上同时执行。例如,处理单元能够将其处理在多个线程之间进行基于轮转的、时分的或优先级驱动的划分。
第一线程106包括监视和诊断逻辑108的执行,该监视和诊断逻辑108针对对应于无效状态的有问题的操作状态而监视全部或部分计算环境102的执行。第一线程106能够专用于监视和诊断逻辑108。作为替换,监视和诊断逻辑108能够作为同样用于执行其他软件操作(例如,软件应用操作)的线程106的一部分来执行。例如,监视和诊断逻辑108能够根据预定的时间表周期性地执行,或者在计算环境中的条件允许时(例如,在计算环境的工作负荷足够重或足够轻时)执行。
监视和诊断逻辑108包括状态监视器110,该状态监视器110是用于监视在线程106、114和116中的软件操作的执行以识别无效状态的软件程序。此外,状态监视器110还针对无效数据状态监视用于计算环境102的一个或多个数据仓库(未示出,并且例如与计算环境102相关的易失性或非易失性存储器)。例如,此类存储器能够包括用于计算环境102的一个或多个存储器堆。
以此方式,状态监视器110能够确定属于两种一般类别的无效状态:由在计算环境的数据仓库中的数据(例如,出现中断或不完整的数据)内容指示的无效状态;以及由发生于计算环境102中的一系列事件(例如,发生于计算环境102内的一个或多个线程中的错误的或指示错误状态的处理动作)指示的无效状态。
状态监视器110根据预定的无效状态信息104来识别计算环境102的无效状态,所述无效状态信息104为计算环境102提供无效状态的规则、标准或特征的定义。无效状态信息104能够存储于计算环境的存储器内,例如,易失性或非易失性存储装置、堆存储器、磁盘或磁带、闪存或其他适合的存储器。无效状态信息104能够按结构化数据格式(例如,数据结构),或者作为替换,按能够被解析的格式(例如,XML)或其他语义数据格式来组织。另外,该无效状态信息104能够存储于数据库内。
无效状态信息104适用于帮助状态监视器110识别在以上所述的无效状态的两种一般类别中的计算环境102的无效状态。例如,由在计算环境102的数据仓库内的数据内容指示的无效状态在无效状态信息104中能够表示为用于表征无效数据的一组标准。无效引用(例如,指针)可以包括在可寻址范围之外的或者指示在存储器的安全或保护范围内的不可或不应直接寻址的存储位置的存储器地址。无效状态信息104能够包括无效存储器引用的指示,使得状态监视器110能够识别此类在计算环境102的数据仓库中的无效的存储器引用,以识别无效的数据状态。
在第二个示例中,由于计数器数据项超过预定阈值而产生的无效状态能够通过识别计数器的有效范围或者最大或最小值而表示于无效状态信息104中,使得状态监视器110能够识别在计算环境102的数据仓库中的无效计数器的值,以识别无效的数据状态。
在第三个示例中,由于包括错误或异常处理或捕获操作的执行在内的一系列事件而引起的无效状态能够表示于无效状态信息104内,使得状态监视器110能够识别包括此类操作在内的事件序列,以识别计算环境102中的无效状态(例如,对应于错误或异常状态)。
监视和诊断逻辑108还包括适用于对由状态监视器110确定多线程计算环境102处于无效状态做出响应而捕获诊断数据118的诊断数据捕获工具112。诊断数据捕获工具112从包括所存储的数据以及在计算环境102内执行的线程的计算环境102中接收、读取或确定诊断数据。例如,诊断数据能够作为记录于计算环境102的存储器内的数据状态来读取,或者能够响应于由诊断数据捕获工具112提出的数据请求而从线程中接收,或者能够由诊断数据捕获工具112基于可由该工具获得、读取或接收的数据来确定。由诊断数据捕获工具112记录为诊断数据118的信息能够包括:数据转储,例如,包括堆栈、堆或其他存储器转储的存储器转储(memory dump);堆栈跟踪信息;用于记录线程状态信息的线程信息,包括线程数据转储;进程和资源信息(包括存储器、磁盘、外设的状态信息)以及本领域技术人员所熟知的其他信息。诊断数据118被记录于数据仓库,例如,适合的非易失性或易失性存储器或存储设备。
因而,在图1所示的现有技术的布置中,监视和诊断逻辑108通过状态监视器110来监视包括所存储的数据以及发生于线程106、114和116中的操作在内的计算环境102的状态,以根据无效状态信息104来识别无效状态。当状态监视器110识别出无效状态时,诊断数据捕获工具112接收、读取或确定在计算环境中的诊断数据,并且将诊断数据存储于诊断数据仓库118。在图1的现有技术的布置中,不可能不在潜在归因于环境状态的有效过渡变化而同样捕获诊断数据的情况下捕获关于计算环境的无效状态的诊断数据,并因此蒙受由不必要的诊断数据收集而引起的性能下降。特别地,环境状态的过渡变化能够在线程106正进行状态监视操作的同时发生于线程113和116之一或两者内。本发明的优选实施例设法解决该问题,如同下文参考图2到4所阐明的。
图2是适用于本发明的实施例的操作的计算机***的框图。中央处理单元(CPU)202经由数据总线208与存储装置204和输入/输出(I/O)接口206通信连接。存储器204能够是任意读/写存储设备,例如,随机访问存储器(RAM)或非易失性存储设备。非易失性存储设备的示例包括磁盘或磁带存储设备。I/O接口206是用于数据的输入或输出的设备的接口,或者用于数据的输入和输出两者的设备的接口。可与I/O接口206连接的I/O设备的示例包括键盘、鼠标、显示器(例如,监视器)和网络连接。
图3是包括根据本发明的一种优选实施例的用于在多线程计算环境处于无效状态时收集诊断数据318的监视和诊断逻辑308的多线程计算环境302的框图。图3中的许多元件是与参照图1描述的那些元件相同的,并且在此将不重复关于这些元件的描述。图3的监视和诊断数据308还包括用于延迟诊断数据捕获工具312的执行直到由状态监视器310所识别的无效状态被识别为对应于与计算环境302的过渡状态不同的状态的陷阱延迟构件322。过渡状态归因于由线程引起的计算环境302从第一有效状态过渡到第二有效状态而产生。该过渡会由与第一线程306不同的、在第一线程306正进行监视和诊断操作时与第一线程306同时执行的线程引起。有效状态是根据在无效状态信息304中的无效状态定义不能被确定为无效状态的状态。由状态监视器310检测到的无效状态能够是无效状态和过渡状态,因为在多线程计算环境302中,用于与监视和诊断逻辑308的线程306同时执行的其他线程能够在监视和诊断逻辑308正在执行的同时影响环境302的状态。
由于从第一有效状态过渡到第二有效状态而引起的并因此构成无效且过渡状态的无效状态的示例包括:
1.对其中新创建的列表项含有未初始化的(并因此无效的)存储器引用(指针)的链表数据结构所进行的项添加。在存储器引用为未初始化时,计算环境302处于无效状态。但是,无效状态产生于在新的列表条目被创建前的有效状态与在新的列表条目被适当并入所链接的列表数据结构内时的有效状态之间。于是,该无效状态构成了两个有效状态之间的过渡状态。
2.引起计数器超过预定阈值的计数器的递增。在计数器超过阈值时,计算环境302处于无效状态。但是,无效状态产生于计数器在递增之前的有效状态与在软件检测到计数器超过阈值并复位计数器之后的有效状态之间。因而,该无效状态构成了在两个有效状态之间的过渡状态。
3.对应于捕获异常的软件操作序列,其中异常处理程序被实现用于重试随后成功的失败操作。在进入异常处理程序的时刻,计算环境处于无效状态(异常状态)。但是,无效状态产生于在异常之前的有效状态与在进行异常处理程序以重试操作从而实现成功之后的有效状态之间。因而,该无效状态构成了两个有效状态之间的过渡状态。
对本领域技术人员而言,其中无效状态在两个有效状态之间的过渡状态期间仅作为正常处理的结果而产生的另外情景对于本领域技术人员而言将是显而易见的。
陷阱延迟构件322根据延迟设置320来执行陷阱延迟。延迟设置320可以包括时间专用的、计数专用的及线程专用的设置,并因此适用于促使诊断数据捕获工具312的执行的充分延迟,以确保由状态监视器310所识别的无效状态不是或不太可能是过渡状态。在一实施例中,例如,诊断数据捕获工具312的执行的延迟包括在线程专用的有时间戳的监视或跟踪记录被累积时延迟,从而指示该无效状态不仅仅是由另一执行线程引起的过渡状态。延迟设置320能够包括例如无效状态跟踪条目在用于特定线程的时间段内的计数。延迟设置320被例示为存储于监视和诊断逻辑308之外,但是本领域技术人员应当显见,这些规则能够在任意适合的位置以及以由陷阱延迟构件322使用的任意适合的形式存储,例如,在计算环境302的数据库、易失性或非易失性存储器中,在第一线程306的线程数据中,在无效状态检验器322或者任意其他适合的存储位置内。
因而,在使用中,状态监视器310根据无效状态信息304识别计算环境302的无效状态,并且促使陷阱延迟构件322使用延迟设置320来延迟诊断数据捕获数据312的执行,直到验证该无效状态不是过渡状态为止。在无效状态于陷阱延迟构件322的执行之后被证实为是与过渡状态不同的状态的情况下,诊断数据捕获工具312如以上所描述的那样捕获诊断数据318。以此方式,监视和诊断逻辑308在计算环境302的状态处于无效状态时,而不是在状态为有效状态之间的过渡状态时捕获诊断数据318。
图4是根据本发明的一种优选实施例的图3的监视和诊断逻辑308的操作的流程图。逻辑起始点在开始步骤400。在步骤402,状态监视器310监视计算环境302的状态。在步骤404,状态监视器310根据无效状态信息304来识别可能存在无效状态,并且在步骤406初始化陷阱延迟构件322。陷阱延迟构件322按照延迟设置320通过重复步骤402、404、406来延迟诊断数据捕获构件312的操作,直到例如状态监视器310已经在延迟设置320中设置的时间段内或总的发生计数内累积了该线程的多个无效状态的指示符。
如果,在步骤406,状态监视器310已经在延迟设置320中设置的时间段内或总的发生计数内累积了该线程的多个无效状态的指示符,则***有证据说明该无效状态对应于与计算环境302的过渡状态不同的状态,并在步骤408促使诊断数据捕获工具312的执行,以在步骤410产生诊断数据。该逻辑在结束步骤412结束。
本领域普通技术人员应当清楚,本发明的优选实施例的方法的全部或部分可以在包括布置用于执行本发明的步骤的逻辑元件的一个或多个逻辑装置中适当且有效地实现,并且此类逻辑元件可以包括硬件构件、固件构件或者它们的组合。
本领域技术人员同样应当清楚,根据本发明的优选实施例的逻辑布局的全部或部分可以在包括逻辑元件的逻辑装置中适当地实现,以执行该方法的步骤,并且此类逻辑元件可以包括在例如可编程逻辑阵列或专用集成电路中的诸如逻辑门之类的构件。该逻辑布置还可以实现于使能元件中,以便使用例如虚拟硬件描述语言在该阵列或电路中暂时或永久建立逻辑结构,该逻辑结构可以使用固定的或可传输的载体介质来存储和传输。
应当意识到,以上所描述的方法和布置同样可以适用地完全或部分执行在一个或多个处理器(图中未示出)上运行的软件中,并且该软件可以按照在容纳于例如磁盘或光盘等任意适合的数据载体(图中未示出)上的一个或多个计算机程序元件的形式来提供。用于传输数据的通道同样可以包括所有描述的存储介质,以及信号传输介质,例如,有线的或无线的信号传输介质。
方法通常被设想为产生所期望的结果的前后一致的步骤序列。这些步骤需要物理量的物理操作。通常,尽管不必要,但是这些物理量采取能够存储、传输、结合、比较或另外操作的电信号或磁信号的形式。有时,主要为了共同使用,将这些信号称为位、值、参数、项、元素、对象、符号、字符、术语、数字等是方便的。但是,应当指出,所有这些术语及类似的术语都应当与适当的物理量相关,并且仅为应用于这些量的方便标签。
本发明还可以适当地实现为由计算机***使用的计算机程序产品。该实现方式可以包括固定于有形介质上(例如,计算机可读的介质,例如,软盘、CD-ROM、ROM或硬盘)或者可经由调制解调器或其他接口器件通过有形介质(包括,但不限于,光学或模拟通信线路)或无形地使用无线技术(包括,但不限于,微波、红外线或其他传输技术)传输到计算机***的计算机可读的一连串指令。这一连串计算机可读的指令实现本文在前面所描述的全部或部分功能。
本领域技术人员应当意识到,此类计算机可读的指令能够用众多编程语言来编写,以便由许多计算机体系结构或操作***使用。此外,此类指令可以使用当前或未来的任意存储技术(包括,但不限于,半导体、电磁或光)来存储,或者使用当前或未来的任意通信技术(包括,但不限于,光、红外线或微波)来传输。可设想到,该计算机程序产品可以作为附有印刷文档或电子文档的可移动介质(例如,压缩打包软件)来分销,以计算机***预装载于例如***ROM或固定磁盘上,或者由服务器或电子公告牌通过网络(例如,互联网或万维网)来分发。
在一种替换方案中,本发明的优选实施例可以按照部署于服务器上的计算机实现的方法的形式来实现,该方法包括部署可操作用于在部署到计算机设施内并于其上执行时促使所述计算机***执行该方法的全部步骤的计算机程序代码。
在又一种替换方案中,本发明的优选实施例可以按照具有功能数据于其上的数据载体的形式来实现,所述功能数据包括功能计算机数据结构,以在载入计算机***并由此于其上操作时使所述计算机***能够执行该方法的所有步骤。
本领域技术人员应当清楚,在不脱离本发明的范围的情况下,能够对上述示例性实施例进行众多改进和修改。

Claims (11)

1.一种操作多线程计算环境用以捕获诊断数据的方法,所述方法包括以下步骤:
响应于监视器确定所述计算环境处于预定的无效状态,初始化具有延迟阈值的陷阱延迟构件;并且
通过第一线程记录所述计算环境的诊断数据;
其中所述陷阱延迟构件延迟所述记录诊断数据的步骤,直到所述监视器确定所述预定的无效状态已经重复达总计数或对应于预定指示符的时段中的至少一种,所述预定指示符是指示状态是与所述计算环境的过渡状态不同的状态的指示符,所述过渡状态对应于通过一个或多个其他线程的所述计算环境从第一有效状态到第二有效状态的过渡。
2.根据权利要求1所述的方法,其中所述预定的无效状态由在所述计算环境的数据仓库中的数据内容所指示。
3.根据权利要求2所述的方法,其中所述数据是破坏的。
4.根据权利要求2所述的方法,其中所述数据是不完整的。
5.根据权利要求1所述的方法,其中所述无效状态由在所述计算环境中发生的事件序列所指示。
6.根据权利要求5所述的方法,其中所述事件序列对应于在所述计算环境中的一个或多个线程内发生的处理动作。
7.根据以上任意权利要求所述的方法,还包括将所述预定指示符设置为所述预定的无效状态的总出现计数。
8.根据以上任意权利要求所述的方法,还包括将所述预定指示符设置为用于监视所述预定的无效状态的出现的时间段。
9.一种用于在多线程计算环境中捕获诊断数据的设备,包括:
响应于监视器确定所述计算环境处于预定的无效状态而初始化具有延迟阈值的陷阱延迟构件的装置;以及
通过第一线程记录所述计算环境的诊断数据的装置;
其中所述陷阱延迟构件延迟所述记录诊断数据的装置的操作,直到所述监视器确定所述预定的无效状态已经重复达总计数或对应于预定指示符的时段中的至少一种,所述预定指示符是指示状态是与所述计算环境的过渡状态不同的状态的指示符,所述过渡状态对应于通过一个或多个其他线程的所述计算环境从第一有效状态到第二有效状态的过渡。
10.一种设备,包括:中央处理单元;存储器子***;输入/输出子***;及互连所述中央处理单元、所述存储器子***、所述输入/输出子***的总线子***;以及根据权利要求9所述的设备。
11.一种计算机程序,包含在装载到计算机***内并在其上执行时使得所述计算机执行根据权利要求1到8中的任意权利要求所述的方法的步骤的计算机程序代码。
CN201180013864.1A 2010-03-16 2011-03-15 用于计算环境中的诊断数据捕获的方法和设备 Expired - Fee Related CN102792278B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10156667 2010-03-16
EP10156667.7 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
CN102792278A true CN102792278A (zh) 2012-11-21
CN102792278B CN102792278B (zh) 2015-09-16

Family

ID=43827983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180013864.1A Expired - Fee Related CN102792278B (zh) 2010-03-16 2011-03-15 用于计算环境中的诊断数据捕获的方法和设备

Country Status (6)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792278B (zh) * 2010-03-16 2015-09-16 国际商业机器公司 用于计算环境中的诊断数据捕获的方法和设备
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246590A1 (en) * 2004-04-15 2005-11-03 Lancaster Peter C Efficient real-time analysis method of error logs for autonomous systems
US20060200823A1 (en) * 2005-03-02 2006-09-07 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
US7165190B1 (en) * 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
CN101226495A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 用于捕获和保存中间错误状态数据的***和方法

Family Cites Families (8)

* 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
US6018300A (en) * 1994-12-23 2000-01-25 British Telecommunications Public Limited Company Fault monitoring
US7849465B2 (en) 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
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
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
CN102792278B (zh) * 2010-03-16 2015-09-16 国际商业机器公司 用于计算环境中的诊断数据捕获的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165190B1 (en) * 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
US20050246590A1 (en) * 2004-04-15 2005-11-03 Lancaster Peter C Efficient real-time analysis method of error logs for autonomous systems
US20060200823A1 (en) * 2005-03-02 2006-09-07 Microsoft Corporation Systems and methods of reporting multiple threads involved in a potential data race
CN101226495A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 用于捕获和保存中间错误状态数据的***和方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US8949671B2 (en) Fault detection, diagnosis, and prevention for complex computing systems
CN102792278A (zh) 计算环境中的诊断数据捕获
CN100405311C (zh) 用于计算机***中的多个分区的错误监视的方法
CN102369523B (zh) 对分布式应用程序的监测
CN100359481C (zh) 多任务***的异常监控装置及其方法
US8473789B2 (en) Memory leak monitoring system and associated methods
CN101859268B (zh) 上下文切换采样
US20160055044A1 (en) Fault analysis method, fault analysis system, and storage medium
US10365946B2 (en) Clustering based process deviation detection
US10338990B2 (en) Culprit module detection and signature back trace generation
US10740166B2 (en) Thread based dynamic data collection
US8489938B2 (en) Diagnostic data capture in a computing environment
CN110018932B (zh) 一种容器磁盘的监控方法及装置
US9946621B2 (en) Prevention of event flooding
US9009535B2 (en) Anomaly detection at the level of run time data structures
CN103064776A (zh) 一种性能监控方法及装置
US20100162269A1 (en) Controllable interaction between multiple event monitoring subsystems for computing environments
CN111784176A (zh) 一种数据处理方法、装置、服务器及介质
CN102930046B (zh) 数据处理方法、计算节点及***
CN104346246A (zh) 故障预测方法和装置
CN110084528B (zh) 核电厂人因失误数据收集方法、装置、设备及介质
JPH04149749A (ja) ログデータ採取方式
CN113806183A (zh) 应用卡顿处理方法、装置、设备、存储介质和程序产品
JPH04257035A (ja) 仮想計算機システム配下における障害情報処理方式
JP5586322B2 (ja) プラント監視システムおよびプラント監視方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150916

Termination date: 20210315

CF01 Termination of patent right due to non-payment of annual fee