共同操作的多映像系统中的第二故障数据捕获的制作方法

文档序号:6507334阅读:144来源:国知局
共同操作的多映像系统中的第二故障数据捕获的制作方法
【专利摘要】公开了一种方法、计算机系统和计算机程序,用于捕获具有多个软件映像的计算机系统中的诊断跟踪信息。接收与所述多个软件映像的第一个中的第一故障有关的信息。将接收的信息分发到所述多个软件映像的其它软件映像。此外,捕获与所述多个软件映像中的另一个中的第二故障有关的信息。信息的分发可以包括将所述信息的第一部分分发到所述多个软件映像中的第一多个软件映像,并且将所述信息的第二部分分发到所述多个软件映像中的第二多个软件映像。
【专利说明】共同操作的多映像系统中的第二故障数据捕获
【技术领域】
[0001]本发明涉及计算机系统中的诊断数据的自动捕获,特别是共同操作的多映像计算机系统中的诊断数据的自动捕获。
【背景技术】
[0002]诊断数据的自动捕获在计算机系统中是众所周知的。具体地,它通常用在复杂的和/或长时间运行应用中以允许问题的快速解决,而不需要现场再现故障或备份系统。已知的解决方案是以转储、日志和跟踪文件的形式提供第一故障数据捕获(FFDC),数据捕获在检测到问题时触发。
[0003]该已知的解决方案的问题是在获得用于分析和解决问题的足够诊断信息的需求和产生该诊断信息的成本之间存在折中。产生诊断信息的成本可以包括a)用于连续日志记录和跟踪的应用的性能开销,b)对故障产生转储所花的时间(这可能延迟应用的重启),以及c)存储诊断信息输出要求的磁盘空间量。
[0004]W02012/026035A公开了一种故障处理系统,其具有:存储位置信息获取单元,用于从其中已经出现故障的组件的存储单元中获取表示在故障发生时生成的故障信息的存储位置的存储位置信息;故障信息获取单元,用于基于存储位置信息,从存储设备获取在故障发生时在信息处理设备中生成的、与故障有关的故障信息,该存储设备被连接以便能够与信息处理设备和故障处理设备通信;以及配置控制单元,用于基于获取的故障信息,根据信息处理设备修改故障处理设备的配置。从而,故障处理系统能够容易地再现在信息处理设备中出现的故障,以便有效地执行再现试验。
[0005]因此,现有技术中存在处理上述问题的需要。

【发明内容】

[0006]本发明的实施例提供一种用于捕获诊断跟踪信息的方法,所述方法用于具有多个软件映像的计算机系统中,所述方法包括以下步骤:接收与所述多个软件映像的第一个中的第一故障有关的信息;将所述信息分发到所述多个软件映像的其它软件映像;捕获与所述多个软件映像中的另一个中的第二故障有关的信息。该方法的优点是,捕获跟踪诊断信息的成本被最小化,直到第一故障出现,此后,捕获的跟踪诊断信息的值被最大化,并且通过只捕获与第一故障有关的详细跟踪诊断信息,捕获跟踪诊断信息的成本被最小化。
[0007]在实施例中,所述分发所述信息的步骤由负荷平衡器、管理程序、操作系统、监视软件或对等通信机构中的一个执行。
[0008]在优选实施例中,所述将所述信息分发到所述多个软件映像的其他软件映像的步骤包括:将所述信息的第一部分分发到所述多个软件映像中的第一多个软件映像,并且将所述信息的第二部分分发到所述多个软件映像中的第二多个软件映像。这具有的优点是,分发了跨越软件映像收集诊断跟踪信息的负荷,并且仍然允许全面的跟踪诊断信息的收集。[0009]在优选实施例中,所述捕获信息的步骤在预定时间段之后过期。在可替代实施例中,所述捕获信息的步骤在第二故障之后过期。这些实施例具有的优点是,限制在其期间捕获另外的诊断跟踪信息的时间段,并且因此限制捕获诊断跟踪信息的另外成本。
[0010]在另一实施例中,所述软件映像的每个还包括进程或线程;以及所述接收的信息与所述进程或线程的第一进程或线程中的第一故障有关;所述分发的信息分发到所述进程或线程的其他进程或线程;所述捕获的信息与所述进程或线程的另一个中的第二故障有关。
[0011]在另一实施例中,所述接收的诊断跟踪信息识别所述软件映像的外部因素作为所述第一故障的原因。这具有的优点是,由于外部因素(如网络故障)导致的故障可能导致要在每个软件映像中收集的与外部因素有关的另外的跟踪诊断信息。
[0012]在另一实施例中,所述方法还包括以下步骤:在所述接收步骤之后,检查所述多个软件映像的一个或多个其他软件映像是否正在执行与所述多个软件映像中的所述第一软件映像相同的软件。
[0013]在另一实施例中,所述方法还包括以下步骤:将所述与所述多个软件映像的第一软件映像中的第一故障有关的信息和所述与所述多个软件映像的另一个中的第二故障有关的信息组合;分析所述组合的信息以便确定第一故障的原因。跟踪诊断信息的这种组合和分析允许确定故障的原因,而不需要现场再现故障或备份系统。
[0014]在另一实施例中,所述捕获信息的步骤持续,直到所述分析所述组合的信息以便确定第一故障的原因的步骤结束。这允许捕获来自任何进一步故障的信息,同时组合和分析来自之前故障的跟踪诊断信息,而是允许在分析结束时停止捕获。
[0015]本发明的实施例还提供了一种计算机系统和用于实现捕获诊断跟踪信息的上述方法的计算机程序产品。
[0016]从另外的方面来看,本发明提供一种用于捕获诊断跟踪信息的计算机程序产品,所述计算机程序产品包括:计算机可读存储介质,其可由处理电路读取,并且存储由处理电路执行的指令,用于执行用于执行本发明的步骤的方法。
[0017]从另外的方面来看,本发明提供一种计算机程序,其存储在计算机可读介质上并可加载到数字计算机的内部存储器中,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。
[0018]从另外的方面来看,本发明提供一种基本如参考附图描述的方法。
[0019]从另外的方面来看,本发明提供一种基本如参考附图描述的系统。
【专利附图】

【附图说明】
[0020]只通过示例的方式,参考附图现在将更详细描述本发明的优选实施例,附图中:
[0021]图1是其中可以使用本发明的具有通信机构的多个软件映像的方块图;
[0022]图2是图1的软件映像之一的方块图;
[0023]图3是图2的应用软件的方块图;
[0024]图4示出图1的多个映像、第一故障事件和第二故障事件之间的时间关系;
[0025]图5是根据本发明实施例的捕获诊断跟踪信息的流程图;以及
[0026]图6是分析由图5的实施例捕获的诊断跟踪信息的流程图。【具体实施方式】
[0027]参考图1,具有软件映像102-112的应用服务器每个独立地操作处理数据,并且使用通信机构120相互通信。通信机构120可以是负荷平衡器、管理程序、操作系统或监视软件。在另一实施例中,通信机构120可以简单地是对等通信机构。
[0028]图2示出图1的软件映像102之一。典型地,软件映像包括操作系统202、中间件204和应用软件206。这些元件的任何可以不存在于软件映像中,并且上面没提到的其他组件可以存在于软件映像中。在优选实施例中,每个软件映像与其他软件映像相同。在其他实施例中,每个软件映像具有与其他软件映像共同的组件。
[0029]图3示出图2的应用软件。典型地,应用软件将执行为多个进程302,这些进程302的每个具有多个线程304。尽管图3只示出具有一个线程304的一个进程302,但是可以执行任何数量的进程,每个进程可以具有任何数量的线程。正在执行的进程302的每个可以具有不同数量的线程304。
[0030]图4示出图1的系统的时间线。映像2 104、映像3 106、映像5 110和映像6 112每个开始执行并且连续执行而没有故障。映像I 102在时间406开始执行。它连续执行直到出现故障时的时间408。该故障导致故障事件。故障事件导致跟踪诊断信息被记录到日志文件402。跟踪诊断信息典型地是设为一直开的第一故障数据捕获(FFDC)数据,也就是说,它是跟踪诊断信息的一般选择,该跟踪诊断信息优化为使得故障软件组件和故障的任何外部原因(如进程信号或I/O错误)能够被识别。因为产生诊断信息的成本,如性能开销、对故障产生转储所花的时间和存储诊断信息输出要求的磁盘量,详细的跟踪诊断信息不设为一直捕获。
[0031]参考图5,本发明的实施例的方法在步骤502开始。在步骤504通过通信机构接收第一故障数据。进行检查506,以查看是否存在运行相同软件的任何其他映像。如上所述,在其他实施例中,每个软件映像具有与其他软件映像共同的组件。如果不存在在相同软件上运行的其他映像,并且可选地如果不存在与故障映像具有共同的组件的其他映像,则在步骤S512方法结束。
[0032]如果存在在相同软件上运行的其他映像,或者可选地具有共同的组件,则在步骤508,故障事件也导致与故障相关的信息通过通信机构120从映像I 102传递到其他映像2到6 104-112。这些映像2到6 104-112至少运行在与在时间408出现故障的映像I 102中运行的软件组件相同的一些软件组件上。图2到6 104-112然后能够预期与映像I 102中相同的故障出现在这些映像中而调整它们的诊断配置。例如,如果映像I 102中的特定软件组件已经识别为导致故障,则该特定软件组件的操作的更详细日志记录可以在映像2到6 104-112中承担。这可能包括在软件组件中被开通的额外跟踪。作为另一示例,如果映像I 102中故障的原因是存储器不足,则映像2到6 104-112能够开始日志记录关于它们映像中的存储器使用的更详细信息。
[0033]图4还示出映像4 108中在时间410出现的第二故障。该故障导致故障事件。在图5中的步骤510,故障事件导致跟踪诊断信息日志记录到日志文件404。日志文件404包含在时间408在映像I 102中出现故障的软件组件或在时间408在映像I 102中的故障原因的更详细的跟踪诊断信息。如果软件映像4 108中的故障原因与导致映像I中的之前故障的原因相同或相似,则捕获的更详细的跟踪诊断信息可能对识别故障原因以及识别应当采取来防止进一步故障发生的动作相当有帮助。在图5中,方法在步骤512结束。
[0034]在另一实施例中,在可能称为“理论”或“阶梯”实施例中,跟踪诊断信息的捕获的增加水平跨越映像102-112被负荷平衡。每个映像配置为对软件组(stack)的特定部分或多个特定部分捕获更全面的跟踪诊断信息。在映像102-112之间,对软件组的所有要求部分捕获跟踪诊断信息。映像还可以配置为捕获跟踪诊断信息的任何子集,其可能是期望的并且对其可以在一些或全部映像之间划分覆盖范围。
[0035]在另一实施例中,上述方法可以不跨越映像102-112应用,而是跨越进程302或跨越线程304应用。出现故障的第一进程捕获跟踪诊断信息,其用于如果以及当其他进程出现故障时重新配置什么跟踪诊断信息被其他进程捕获。类似地,出现故障的第一线程可以捕获跟踪诊断信息,其用于如果以及当其他线程出现故障时重新配置什么跟踪诊断信息被其他线程捕获。该跨越进程和跨越线程的方法可以与跨越映像使用的方法组合或者可以单独使用。
[0036]在另一实施例中,在跟踪诊断信息的捕获的水平返回到它在第一故障之前的水平或设为另一预定水平之前,对于第一故障事件之后的预定时间段,重新配置的跟踪诊断信息的捕获可以跨越其他映像、进程或线程应用。
[0037]在另一实施例中,在第二或随后故障事件已经出现和/或足够的跟踪诊断信息已经捕获之后,所有映像上的跟踪诊断信息的捕获的水平返回到它在第一故障事件之前的水平。
[0038]在另一实施例中,上述方法可以应用于不相同的软件组或工作负荷。例如,对于由共同的外部因素(如网络故障)导致的故障,一个或多个映像、进程或线程可以配置为捕获另外的跟踪诊断信息,其中不同的配置适当地用于每个映像、进程或线程中的预期的网络故障。
[0039]返回图6,在步骤602,开始使用跟踪诊断信息分析故障。在步骤604,第一故障数据与第二故障数据组合。然后在步骤606,分析组合的信息。在步骤608,分析结束。在另一实施例中,首先分析第一故障数据,然后考虑第一故障数据的发现分析第二故障数据。可以在第一映像102中进行分析,或者可以在从第一映像102结束故障信息时由其他映像104-112进行分析。
[0040]在另一实施例中,在故障之后启动或重启的映像102-112还可以配置为捕获增加水平的跟踪诊断信息。
[0041]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法、计算机程序或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0042]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0043]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0044]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0045]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0046]下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0047]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)0
[0048]计算机程序指令还可以加载到计算机、其他可编程数据处理装置或其他设备,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或方块图方块或多个方块中指定的功能/动作。
[0049]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。 [0050]为了避免疑惑,术语“包括”如在这里使用的,贯穿说明书和权利要求不被解释为意味着“只由……构成”。
【权利要求】
1.一种用于捕获诊断跟踪信息的方法,所述方法用于具有多个软件映像的计算机系统中,所述方法包括以下步骤: 接收与所述多个软件映像的第一个中的第一故障有关的信息; 将所述信息分发到所述多个软件映像的其它软件映像; 捕获与所述多个软件映像中的另一个中的第二故障有关的信息。
2.根据权利要求1所述的方法,其中所述分发所述信息的步骤由负荷平衡器、管理程序、操作系统、监视软件或对等通信机构中的一个执行。
3.根据权利要求1到权利要求2的任何一个所述的方法,其中所述将所述信息分发到所述多个软件映像的其他软件映像的步骤包括:将所述信息的第一部分分发到所述多个软件映像中的第一多个软件映像,并且将所述信息的第二部分分发到所述多个软件映像中的第二多个软件映像。
4.根据权利要求1到权利要求3的任何一个所述的方法,其中所述捕获信息的步骤在预定时间段之后过期。
5.根据权利要求1到权利要求3的任何一个所述的方法,其中所述捕获信息的步骤在第二故障之后过期。
6.根据权利要求1到权利要求5的任何一个所述的方法,其中: 所述软件映像的每个还包括进程或线程;以及 所述接收的信息与所述进程或线程的第一进程或线程中的第一故障有关; 所述分发的信息分发到所述·进程或线程的其他进程或线程; 所述捕获的信息与所述进程或线程的另一个中的第二故障有关。
7.根据权利要求1到权利要求6的任何一个所述的方法,其中所述接收的信息识别所述软件映像的外部因素作为所述第一故障的原因。
8.根据权利要求1到权利要求7的任何一个所述的方法,还包括以下步骤:在所述接收步骤之后,检查所述多个软件映像的一个或多个其他软件映像是否正在执行与所述多个软件映像中的所述第一软件映像相同的软件。
9.根据权利要求1到权利要求8的任何一个所述的方法,还包括以下步骤: 将所述与所述多个软件映像的第一软件映像中的第一故障有关的信息和所述与所述多个软件映像的另一个中的第二故障有关的信息组合; 分析所述组合的信息以便确定第一故障的原因。
10.根据权利要求9所述的方法,其中所述捕获信息的步骤持续,直到所述分析所述组合的信息以便确定第一故障的原因的所述步骤结束。
11.一种计算机系统,包括: 多个软件映像; 日志文件,包括与所述多个软件映像的第一软件映像中的第一故障有关的跟踪诊断信息; 通信机构,用于将来自所述日志文件的信息分发到所述多个软件映像的其他软件映像; 所述多个软件映像的所述其他软件映像捕获与所述多个软件映像的另一个中的第二故障有关的信息。
12.根据权利要求11所述的计算机系统,其中所述通信机构将所述信息的第一部分分发到所述多个软件映像中的第一多个软件映像,并且将所述信息的第二部分分发到所述多个软件映像中的第二多个软件映像。
13.根据权利要求11到权利要求12的任一所述的计算机系统,其中: 所述软件映像的每个还包括进程或线程;以及 所述接收的信息与所述进程或线程的第一进程或线程中的第一故障有关; 所述分发的信息分发到所述进程或线程的其他进程或线程; 所述捕获的信息与所述进程或线程的另一个中的第二故障有关。
14.根据权利要求11到权利要求13的任一所述的计算机系统,其中所述通信机构之一或所述多个软件映像之一: 将所述与所述多个软件映像的第一软件映像中的第一故障有关的信息和所述与所述多个软件映像的另一个中的第二故障有关的信息组合; 分析所述组合的信息以便确定第一故障的原因。
15.一种根据权利要求1 -10的任何权利要求的用于捕获诊断跟踪信息的系统。
【文档编号】G06F11/07GK103577273SQ201310343980
【公开日】2014年2月12日 申请日期:2013年8月8日 优先权日:2012年8月8日
【发明者】R.N.张伯伦, A.J.皮尔金顿, H.J.赫利尔, M.F.彼得斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1