自主记日志支持的制作方法

文档序号:6483863阅读:152来源:国知局
专利名称:自主记日志支持的制作方法
技术领域
本发明总体涉及数据处理系统中的事件管理,更具体地说,涉及为了提供有效的记日志(logging)机制而管理数据处理系统中发生的事件。
背景技术
运行于包括但不限于分布式或并行处理系统等的数据处理系统上的处理会产生运行日志,其提供与实施处理时发生的各种事件关联的细节。这些处理产生事件日志或活动历史日志,其大小不能事先确定。尽管情况是生成这种日志的处理通常落入诸如守护(daemon)的非交互处理的类别,但交互处理也能够生成存储于日志文件的消息和事件说明。这些日志文件,或更常说的“日志”,对跟踪处理的执行和死机后的调试以及问题分析特别有用。相应地,有效的记日志是在正确地工作处理中用于跟踪目的至关重要的功能,特别是在非正常故障情况中用于问题确定和解决的至关重要的功能。
一些长的运行处理,例如像分布式数据处理系统中分布于许多节点上的那些处理的守护处理会生成非常长的日志文件。于是系统被迫创建大型活动(activity)日志,必要时,大型活动日志需要用于存储和以后读取的适宜机制。然而,产生无限制或者甚至大到无法确定程度的大小的日志文件是不希望的、有时是不允许的。总体上,由于大到不可控制程度的大小的日志文件限制了存储、妨碍了性能并增加了管理开销和数据处理系统的负荷,因此是不希望的。
一些数据处理应用通过使用限制日志文件大小的技术来解决日志文件大小管理的问题。这可通过几种方法来实现。在第一种方法中,该文件可被限制在某最大大小,并且当达到最大文件大小时,以先入先出的方式(有限大小下压堆栈)形成进入其中的条目(entry)。在此方法的变形,也即“包裹(wrapping)”中,当达到最大文件大小时,较早的文件条目被盖写。在此问题的又一方法中,提供了一种旋转(rotating)文件结构,从而如果日志文件达到了某限制,则随后日志条目(此处也称作“日志文件条目”)被写入全新的文件。例如,如果当前日志文件超出了日志文件大小的预定限制,则当前日志文件被命名为备份文件并以当前日志文件名来创建另一日志文件。此问题的另一方法是简单地随意缩减所生成的日志文件条目的数量。然而,此方法破坏了保持精确而详细的事件历史的本来目的。尽管这种缩写的文件更容易管理,但其内容常常严重缺乏报告生成目的所希望的细节。虽然针对问题的全部这些方法对限制所使用的存储量提供了一定帮助,但仍有几个这些方法都未解决的问题。
此外,当日志文件被多次截短和包裹时,经常无法跟踪某些重要事件或活动条目。如果问题发生在顾客站点或远程站点,而丢失的日志条目提供了确定潜伏(underlying)问题的解决方案所需的关键元素,则“包裹”方法因而被视为特别不利。例如,尽管未直接地涉及面临的问题,但应用或处理初始化信息常常证明是解决潜伏问题的关键。对应的日志条目产生于处理执行的开始处,并从而存储于对应的日志文件的开始处。如果日志文件被截短和包裹,则一般会丢失存储于日志文件的开始处的处理初始化信息。在此情形下,此方法清楚地展示了其主要弊端。
现有记日志方法存在的另一严重缺陷是不提供基于事件或活动日志条目的绝对或者甚至相对重要性的任何粒度(granularity)。绝对重要性是指对于运行处理中发生的事件,比其它条目更重要的日志文件条目。相对重要性是指对于处理正在运行的数据处理系统中的状态改变,比其它条目更重要的日志文件条目。具体地,相对重要性一般表示运行处理中发生的事件对系统资源使用的影响。这些重要日志条目特别有助于故障后(after-the-fact)调试和/或分析。事实上,这种重要事件或活动日志条目可提供关键的信息,用于调试/分析在运行处理中出现的、可造成系统故障并因此需要解决的问题。
更具体地,许多情形下只有当系统处于极度压力下时,其潜伏问题才表面化。于是,如上述,使用现有记日志机制,重要日志条目会嵌入巨大的具有无限或者甚至大到无法确定的大小的日志文件。然而,此巨大的日志文件可能包括大量与应解决的问题无关的日志条目。例如,如果处理在问题表面化前几天或几周以大规模应用运行,则通常会创建非常大量的日志文件条目。一般地,多数日志文件条目仅与确认运行处理正确进行的跟踪目的有关。然而,这些日志条目可能包含与发生故障时需解决的问题无关紧要的信息。由于一般需要由操作者在分析问题前手工地区分关键信息与无关信息,故此无关信息会不必要地减缓调试(debug)处理。进而,操作者当试图解决问题时,为了确定某些发生的事件对数据处理系统的状态的影响,而需要将关键信息与数据处理系统中发生的状态改变关联。结果,此方法既费时又导致巨大成本。
因此,为了提供高效的记日志管理机制,需要一种有效的事件管理,用来在对应的处理事件或活动的绝对或者甚至相对重要性的基础上,生成日志文件条目。

发明内容
本发明总体涉及一种数据处理系统中事件管理的方法、系统和制造物品,更具体地说,涉及一种为了提供有效的记日志机制而管理发生在数据处理系统中的事件的方法、系统和制造物品。
一个实施例提供了一种在数据处理系统中管理对于处理所进行的记日志活动的方法。该方法包括监视数据处理系统的至少一个系统状态参数;并在该至少一个系统状态参数的基础上管理处理的记日志活动。
另一实施例提供了一种为在数据处理系统中执行处理期间发生的事件生成日志文件条目的方法。该方法包括在表示处理演化的趋势分析的基础上确定已发生事件的重要性级别;并仅当所确定的重要性级别超出预定阈值时为已发生事件创建日志文件条目。
另一实施例提供了一种计算机可读媒体,其包含的程序当被执行时进行这样的操作为在数据处理系统中执行处理期间发生的事件生成日志文件条目。该操作包括在表示处理演化的趋势分析的基础上确定已发生事件的重要性级别;将所确定的重要性级别与预定阈值比较;并仅当所确定的重要性级别超出预定阈值时,为已发生事件创建日志文件条目。
另一实施例提供了一种计算机可读媒体,其包含事件管理器程序,用来为数据处理系统中的执行应用的各实例(instance)而启动(initiating)后台线程,该后台线程被配置为监视数据处理系统的至少一个系统状态参数;为了检测一个或多个处理中发生的事件而监视运行于数据处理系统的一个或多个处理;将重要性级别与各已发生事件关联;并在至少一个关联的重要性级别和至少一个系统状态参数的基础上识别将在数据处理系统中采取的预定动作。
另一实施例提供了一种数据处理系统,包括驻留存储器的事件管理器,用来为执行应用的各实例启动后台线程,所述后台线程被配置为监视数据处理系统的至少一个系统状态参数;为了检测一个或多个处理中发生的事件而监视运行于数据处理系统的一个或多个处理;将重要性级别与各已发生事件关联;并在至少一个关联的重要性级别和至少一个系统状态参数的基础上识别将在数据处理系统中采取的预定动作;所述数据处理系统还包括运行一个或多个处理和至少一个后台线程的处理器。


为了详细理解本发明的上述特征的获得方式,通过参照附图所描绘的实施例而对以上简述的本发明做更具体的说明。
然而应注意附图仅描绘了本发明的典型实施例,因而不应被认为是限制其范围,因为本发明也认可其它等同效力的实施例。
图1是根据本发明所示意性使用的计算机系统;图2是实施本发明的部件的关系视图;图3是描绘事件管理的实施例的流程图;图4是描绘选择将在一个实施例中采取的预定动作的流程图;图5是描绘记日志活动管理的实施例的流程图。
具体实施例方式
引言本发明总体涉及一种数据处理系统中事件管理的方法、系统和制造物品,更具体地说,涉及一种为了提供有效的记日志机制而管理发生在数据处理系统中的事件的方法、系统和制造物品。通常,发生在数据处理系统中的特定事件是未来的应用或系统故障(以下为简便而称“故障”)的先兆。此外,故障的许多普通原因具有早在实际故障发生之前即可识别的前导趋势。在检测这种特定事件和识别这种趋势时,可采取适宜防止故障的预防性动作。然而,如果无法防止故障,则至少可采取某些动作以确保不希望的影响最小化。这种动作可包括例如将涉及特定事件和趋势的适当信息记入日志。于是当发生故障时,可找到导致故障的问题的快速解决方案。为此,需要进行特定事件和趋势的可靠确定。
相应地,在一个实施例中,为在数据处理系统中执行处理期间发生的事件确定重要性级别。该重要性级别是在表示处理演化的趋势分析的基础上确定的。所确定的重要性级别与预定阈值比较以确定事件是否为特定事件。仅当所确定的重要性级别超出预定阈值时,假定事件是特定事件并为已发生事件创建日志文件条目。
另一实施例利用表示系统资源使用的系统状态参数的分析,以便在数据处理系统中管理处理的记日志活动。因而,监视数据处理系统的至少一个系统状态参数。在该至少一个系统状态参数的基础上管理处理的记日志活动。
优选实施例本发明的一个实施例被实施为用于诸如图1所示计算机系统110等的计算机系统的程序产品,并如下所述。程序产品的程序定义了实施例的功能(包括此处所述的方法),并可包含于各种信号承载媒体。示意性的信号承载媒体包括、但不限于(ì)永久存储于不可写存储媒体(例如计算机内的只读存储设备,诸如可由CD-ROM驱动器读取的CD-ROM盘)的信息;(ìì)存储于可写存储媒体(例如软盘驱动器内的软盘或硬盘驱动器)的可变信息;或(ììì)由包括无线通信的通信媒介,例如通过计算机或电话网络,而传达至计算机的信息。后一实施例具体包括从因特网和其它网络下载的信息。这种信号承载媒体当携带涉及本发明功能的计算机可读指令时,代表本发明的实施例。
一般地,为实施本发明的实施例而执行的例程可以是操作系统或特定应用的一部分、部件、程序、模块、对象或指令的序列。本发明的软件通常由多条指令构成,该指令将被本计算机译成机器可读的格式,从而成为可执行的指令。而且,程序由变量和数据结构构成,其或者本地地驻留于程序,或处于存储器或存储设备。此外,后述各种程序可基于在本发明的特定实施例中实施的应用而识别。然而,应注意下面的任何特别术语仅是为方便而使用,从而本发明不应限仅在这些术语所明示和/或暗示的任何具体应用中使用。
参照图1,示出了计算环境100。总体上,分布式环境100包括数据处理系统110、也可换称为计算机系统110,和多个联网设备146。计算机系统110可代表计算机、计算机系统或其它可编程电子设备中的任何类型,包括客户机计算机、服务器计算机、便携计算机、嵌入控制器、基于PC的服务器、小型计算机、中型(midrange)计算机、大型计算机和其它适于支持本发明的方法、设备和制造物品的计算机。在一个实施例中,计算机系统110是从位于美国纽约州Armonk的国际商用机器公司可获得的eServe iSeries 400。
在图示中,计算机系统110包括联网系统。然而,计算机系统110也可包括独立(standalone)设备。在任何情形下,应明白图1仅是计算机系统的一种配置。本发明的实施例可应用于任何可比的配置,而不管计算机系统110是复杂的多用户设备、单用户工作站、还是自身没有非易失性存储器的网络设备。
本发明的实施例还可实施于分布式计算环境,其中任务由通过通信网络而链接的远程处理设备进行。在分布式计算环境中,程序模块既可位于本地存储设备、也可位于远程存储设备。就此而言,计算机系统110和/或一或多个联网设备146可以是几乎不进行处理、或不进行处理的瘦(thin)客户机。
计算机系统110可包括一些操作者和外围系统,如以下所示,例如,可操作地连接至直接存取存储设备138的大容量存储接口137、可操作地连接至显示器142的视频接口140、和可操作地连接至多个联网设备146的网络接口144。显示器142可以是输出可视信息的任何视频输出设备。
计算机系统110如图示包括至少一个处理器112,其从主存储器116经总线114得到指令和数据。处理器112可以是适于支持本发明的方法的任何处理器。
主存储器116是任何足够大以至能够容纳必要程序和数据结构的存储器。主存储器116可以是一个存储设备或其组合,包括随机存取存储器、非易失性或备份存储器(例如可编程存储器或快闪存储器、只读存储器等)。此外,存储器116可被认为包括物理位置在计算机系统110或计算环境100中其它处的存储器,例如用作虚拟存储器、或存储于大容量存储设备(例如直接存取存储设备138)、或经总线114耦合至计算机系统110的另一计算机的任何存储容量。
存储器116如图示以操作系统118来配置。操作系统118是用于管理计算机系统110的操作的软件。操作系统118的例子包括IBM OS/400、UNIX、Microsoft Windows等。
存储器116还包括一个或多个应用程序120和具有系统状态参数监视器132、事件监视器134和动作处理单元136的事件管理器130。应用程序120和事件管理器130是包括多个指令的软件产品,所述指令在各个时刻驻留于计算环境100中的各种存储器和存储设备。当被计算机系统110中的一个或多个处理器112读取和执行时,应用程序120和事件管理器130使得计算机系统110执行必要步骤,以执行体现本发明的各方面的步骤或元件。应用程序120可与数据库139(在存储器138中示出)交互。数据库139代表数据的任何集合,而不管数据的特定物理表示方式。事件管理器130如图示具有多个组成元素。然而,事件管理器130也可不提供分离的组成元素而实施,例如作为过程化方式中实施的单个软件产品。事件管理器130参照图2而进一步描述。
图2示出了本发明的事件管理器130和其它部件的示意关系示图200。事件管理器130被配置以使得对数据处理系统110中的未来故障做预测成为可能。进而,事件管理器130为避免/解决导致这种故障的问题提供支持。在一个实施例中,事件管理器130通过将运行于数据处理系统110的一个或多个处理的演化与数据处理系统110的状态改变进行相关,从而识别问题。当进行相关而识别出导致故障的问题时,事件管理器识别将采取的预定动作。预定动作被设计以避免故障,或识别和收集可迅速解决问题的关键信息。事件管理器130可通过确定发生在一个或多个处理中的、可能与所识别的问题的解决方案有关的、即用于故障发生时的调试和分析目的的事件,从而识别关键信息。
在一个实施例中,事件管理器130为运行于数据处理系统110的各处理启动后台线程。处理例如可为执行应用的实例而运行。在一个实施例中,后台线程由事件管理器130的组成功能,即由系统状态参数监视器132、事件监视器134和动作处理单元136来实施。这些功能及其交互如下所述。
系统状态参数监视器132监视(如箭头204所示)数据处理系统110的系统状态参数202。系统状态参数202可由操作系统118使用本领域内公知的现有技术来确定和提供。作为例子,系统状态参数202包括已使用的存储器、已分配的处理容量、运行于数据处理系统110的一个或多个处理的相对存储使用、和一个或多个日志文件的大小,所述日志文件被配置为对与一个或多个处理的执行期间发生的事件有关的信息记日志。在一个实施例中,系统状态参数202可根据预定时刻表(time schedule)来确定。预定时刻表可指定周期性的确定。或者,如果对应的处理为应用的可执行实例而运行,则应用可表示系统状态参数202需要确定的时间的时间间隔。
事件监视器134为了检测发生在处理210中的事件212而监视(如箭头214所示)运行于数据处理系统110的处理210。进而,事件监视器134将重要性级别218与各已发生事件212相关联(如虚线箭头216所示)。多个可能发生的事件的重要性级别可以是针对特定应用(application-specific)并由操作者预定义的。重要性级别也可以是由数据处理系统110在预定义的一般重要性模式的基础上自主(autonomously)确定的。这种一般重要性模式例如可以表示对于任何执行于数据处理系统110的应用,在应用的初始化时发生的事件比初始化后紧随的事件更重要。在另一实施例中,重要性级别可以是由数据处理系统110在系统状态参数202的基础上自主确定的,从而将发生的事件212与当前系统状态进行相关。作为例子,考虑了上述可能性的任何组合。例如,重要性级别可由数据处理系统110在系统状态参数202的基础上自主确定,并在预定义的一般重要性模式的基础上加权。本领域技术人员会意识到用来定义或确定重要性级别的其它实施例。
动作处理单元136将由系统状态参数监视器132监视的系统状态参数202与由事件监视器134监视的处理210的演化进行相关。此外,动作处理单元136分析发生的事件212。从而动作处理单元136确定显现的问题是否表示可能的未来故障。如果问题需要应对,则动作处理单元136识别应在数据处理系统110中采取的预定动作。在一个实施例中,预定动作是在至少一个关联的重要性级别218和至少一个系统状态参数202的基础上识别的。
将采取的预定动作包括管理数据处理系统110的记日志活动。例如,如果问题是在系统状态参数202的基础上确定的,但不能明确地归因于某一具体处理,则动作处理单元136可为运行于数据处理系统110的全部处理增加记日志活动。如果问题涉及具体处理中的事件,则可启动运行日志处理,从而为具体处理中的全部后续发生的事件创建日志文件条目220。日志文件条目220存储于对应的日志文件222,该日志文件222示意性地包含于数据库139中。将采取的预定动作还可包括已发生事件212或已显现问题的用户的通知240,并在例如已分配的处理器(CPU)和/或存储容量230上动作,从而禁止特定处理的增加的存储和处理容量使用。在已分配的CPU和/或存储容量230上的动作还可包括(如虚线箭头250所示)如果记日志活动增加则为数据库139中的日志文件222增加分配的存储容量。
应当注意上述的事件管理器130的组成功能之间的交互仅是示意性的,而不应解释成将本发明限制于这些已述的交互。本领域技术人员将意识到仅一部分功能被用于实施根据本发明的数据处理系统中的处理的有效的记日志活动管理机制。例如,系统状态参数监视器132可监视数据处理系统110的至少一个系统状态参数,而动作处理单元136可在至少一个系统状态参数的基础上管理处理的记日志活动。于是,可省略事件监视器134的实施。或者,事件监视器134可检测处理执行期间发生的事件,并在表示处理演化的趋势分析的基础上确定已发生事件的重要性级别。趋势分析如图示包括确定诸如已使用的存储器、已分配的处理容量或处理请求与结果传送间的时间的至少一个处理执行参数。动作处理单元136然后可将所确定的重要性级别与预定阈值比较,并仅当所确定的重要性级别超出预定阈值时为已发生事件创建日志文件条目。于是,可省略系统状态参数监视器132的实施。然而,本领域技术人员会意识到在这两种情形中,记日志活动是在对应的处理事件或活动的绝对或相对重要性的基础上而管理的。于是,在这两种情形中,都可提供改进的且有效的记日志活动管理机制。
下面参照图3~5来说明事件管理器(例如图1和2的事件管理器130)的操作的实施例。为了简便,在以下说明中,仅引用事件管理器本身,而不明文引用其各个组成功能。而且,通过仅引用事件管理器本身,可以有这样的实施方式其中分离的组成功能无法被明确区分。
参照图3,示出了示意性方法300,其代表由数据处理系统(例如图1的数据处理系统110)中的事件管理器进行的操作序列。方法300在步骤310进入。在步骤320,事件管理器检测发生的事件(例如图2的事件212)。在步骤330,事件管理器确定一个或多个系统状态参数(例如图2的系统状态参数202)。
然后,事件管理器建立已发生事件和一个或多个系统状态参数之间的联系。为此,事件管理器在步骤340确定一个或多个系统状态参数是否超出关联的预定参数阈值。具体地,如果一个或多个系统状态参数之一超出了其关联的预定参数阈值,则认为已发生事件影响了数据处理系统的整体性能并造成系统状态改变。在此情形中,在步骤350,事件管理器如上述进行预定动作。以下参照图4来说明选择将采取的预定动作。
如果,反之,系统状态参数中无一超出其关联的预定参数阈值,则可认为数据处理系统正确地工作且系统状态不变。在此情形下,事件管理器可在步骤360为已发生事件创建日志文件条目(例如图2的日志文件条目220),用于跟踪或报告目的。在步骤370,事件管理器将日志文件条目存储于对应的日志文件(例如图2的日志文件222)。方法300然后在步骤380退出。或者,事件管理器在假定数据处理系统正确地工作时可放弃执行步骤360和370。于是,可假定没有日志文件条目需要创建,从而方法300可在步骤380退出。
下面参照图4,说明根据图3的步骤350而选择将采取的预定动作的示意性方法400。在一个实施例中,该选择是在用户指定的选择标准的基础上进行的。用户指定的标准是指由用户预定义的设置。例如,用户可定义某些事件要求用户通知,而其它事件仅要求记日志活动的增加。具体地,如果应用的正确执行对用户的业务至关重要,则用户希望不论何时发生问题都被通知,从而及时采取希望的防止性动作以防止故障。如果应用的执行不特别重要,则故障对用户的业务并非至关重要,从而一旦问题故障,则记日志活动的增加就足以解决问题了。
预定动作的选择也可以在针对特定应用的标准或系统确定的标准的基础上进行。针对特定应用的标准是指作为应用中的硬编码的标准,因此由程序员预定义。系统确定的标准是指作为数据处理系统中,例如图1的操作系统118中,的硬编码的标准,因而不独立于用户或应用。
在任一情形下,将采取的预定动作的选择都始于步骤402。在步骤402,事件管理器确定是否应增加记日志活动。如图示,事件管理器确定是否应为已发生事件创建日志文件条目(例如图2的日志文件条目220),从而增加记日志活动。如果确定应增加记日志活动,则处理在步骤404继续,在此处理已发生事件的日志文件条目。对日志文件条目的处理在下文参照图5而说明。
如果确定不应增加记日志活动,则在步骤406继续选择。在步骤406,事件管理器确定是否要求用户通知。如果确定要求用户通知(例如图2的用户通知240),则事件管理器在步骤408通知用户。通知可通过诸如在显示设备(例如图1的显示器142)上显示可视指示的现有技术来进行。处理然后在步骤410退出。
如果确定用户不应被通知,则在步骤412继续选择。在步骤412,事件管理器确定是否要求对处理和/或存储容量(例如图2的CPU和/或存储容量230)的动作。如果确定要求这种动作,则事件管理器识别将进行的具体动作,例如限制处理的可用存储器,并在步骤414进行该动作。对处理和/或存储容量的动作也可由现有技术来进行。处理然后在步骤416退出。
如果确定不要求这种动作,则处理从步骤412进至步骤418。步骤418代表作为本发明实施例而考虑的将由事件管理器采取的任何其它类型的预定动作。然而,应当理解这样的实施例也可采用即其中未全部实施所有可用的将采取的预定动作。例如,在特定实施例中仅使用记日志活动管理。在另一实施例中,仅使用用户通知和对处理和/或存储容量的动作。进而,可实施一个以上的预定动作。例如,可增加记日志活动,另外,可通知用户。在此情形下,取代在根据步骤404、408、414之一进行预定动作后退出方法400,而是方法400随后继续分别进行步骤406、412和418之一。这种继续可独立于步骤402、406或412之一所分别做的确定。
参照图5,说明根据图4的步骤404处理日志文件条目(例如图2的日志文件条目220)的示意性方法500。在步骤510,事件管理器确定重要性级别并将其与已发生事件关联。在步骤520,事件管理器确定重要性级别是否超出预定阈值。预定阈值例如可在用户输入或在预定义的处理参数的基础上定义。相应地,可基于用户的经验、或表示发生事件的绝对或相对重要性的各训练(training)数据的分析,用户为可能发生的事件提供多个预定阈值。预定义的处理参数是指例如,可由相应处理的先前的执行而确定的处理的普通执行参数。相应地,预定义的处理参数包括诸如处理使用的存储器、和分配给处理的处理容量等的参数。
具体地,步骤520代表事件管理器对于已发生事件是否确实与将在未来造成故障的问题有关所作的确定。更具体地,根据在图3的步骤340所作的确定,在步骤520假定已发生事件潜在地代表会导致故障的问题。然而,有可能系统状态参数超出其关联的预定参数阈值只是因为发生在数据处理系统中的一般负荷峰值,这通常不造成故障就停止了。于是,为了确保已发生事件确实涉及问题,且需要为已发生事件创建日志文件条目,可在步骤520作附加验证。因此,如果重要性级别超出预定阈值,则假定已发生事件确实与可能在未来造成数据处理系统故障的问题有关。因此事件管理器在步骤530为已发生事件创建日志文件条目(例如图2的日志文件条目220),用于调试/分析目的,从而如果故障发生则允许迅速解决问题。在步骤540,事件管理器将日志文件条目存储于对应的日志文件(例如图2的日志文件222)。方法500然后在步骤550退出。然而,如果重要性级别未超出预定阈值,则假定已发生事件不涉及会在未来造成数据处理系统故障的问题。相应地,方法500在步骤550退出。
应当理解以上仅是代表性实施例,而本发明也允许许多其它实施例。例如,可考虑当应用作为记日志部件的初始化的一部分而发生时,可启动实施事件管理器的后台线程。记日志部件读取配置文件,收集关于记日志部件应寻找何种类型事件以及如果发生这样的事件则记日志部件将采取何动作的用户定制信息。可创建多个专用的后台线程以应对不同的事件以用于可伸缩性(scalability)。可将记日志部件实施为可动态地对其做改变。例如,如果记日志部件接收到对调试消息记日志的请求但却设定了排它地给错误消息记日志的记日志级别,则不给调试消息记日志。在此情形下,记日志部件可从后台线程接收到更新命令,以请求记日志部件更新其自身,从而增加用来也给调试消息记日志的记日志活动。相应地,在更新后记日志部件也将给调试消息记日志。
在各种实施例中,本发明提供了许多优于现有技术的优势。例如,代表数据处理系统中常发生的问题的存储器泄漏可容易地根据本发明被识别并防止。存储器泄漏是指这样的未使用存储器其分配给处理或应用,从而至少一个活动用户对此存储器的引用持续存在。该至少一个活动用户的引用防止另一应用或处理返回此存储器供重新使用。相应地,随着数据处理系统中的存储器泄漏数量增加,未使用存储器增加,结果可用存储器减少。
这样的存储器泄漏以难以发现而臭名昭著,而且通常过了很长时间才重建,因为存储器通常泄漏得很慢,直到全部可用存储器资源都告竭。在本段上下文中“重建(recreate)”的意思是“再次发生”。也就是说,存储器泄漏是由于发生例如系统崩溃等故障,通常在过了很长运行时间后才能识别的问题。但存储器泄漏问题通常存在于整个运行中。它只是不造成故障的任何明显外在迹象。即使在具有无用信息(garbage)收集支持的诸如Java的语言中,存储器泄漏也是问题。Java虚拟机仅在不再有对其的用户引用时才清理存储器。然而,如果例如创建了全局范围(globally scoped)的散列(hash)表并继续地向其堆(stack)入新对象,则如果对散列表本身的引用不丢失,那么它们的任何一个都不曾会变得不可达到(unreachable)。最终,散列表将甚至长到使系统资源消耗殆尽。在此情形下,在根据现有技术的数据处理系统中简单地给发生事件记日志将是很令人不满意的。事实上,随着存储器长时间地泄漏,相应的现有日志文件会非常庞大。于是,分析该相应的日志文件会很费时而艰难,因为操作员难以识别相关信息。根据本发明,存储器泄漏和相关的随后故障的可能性可事先确定。于是在故障前可预先采取合适的预防性动作。在本发明的一个方面,这样的动作例如可通过增加记日志部件的活动而对该记日志部件采取。
根据另一方面,处理趋势分析是通过监视一个或多个系统状态参数而进行的。例如,多数应用或处理正常地达到所谓“稳态”,由此它们基本上以与返回旧存储器的速率相同的速率来使用新存储器。如果应用从未达到稳态,则它终将由于存储器泄漏而崩溃并造成故障。也就是说,如果以给定级别运行了很长时间的应用开始消耗愈来愈多的资源,则表明具有变得很重要的潜在可能的事情已改变。因此,此确定会促使以增加的级别来记日志,因为事情可能会朝着故障方向发展。于是,通过进行趋势分析,可检测发生的事件并识别要求增加关注的全部事件。此识别可如上述那样通过将重要性级别与各已发生事件相关联来进行。
除了存储器泄漏以外,还有许多其它类型的情况可保证(warrant)预防性动作的执行。这些情况包括例如具有堆栈的线程,其在数据处理系统中不改变(循环)或也不增加阻塞线程(死锁)的数量。在这些情形下,系统可被配置为正经历麻烦的区域可以仅是后台线程增加记日志信息的区域。进而,以响应时间为至关重要特征的应用可保证预防性动作的执行。在这种应用中,系统可被配置为一旦未一贯地满足所要求的响应时间,则后台线程立即增加记日志信息,以立即向操作员提供相关的调试信息。一旦再次一贯地满足所要求的响应时间,则后台线程可将记日志信息降低至先前级别。
本发明的另一示意应用关于诸如Java Database Connectivity(Java数据库连接)的应用编程接口。Java Database Connectivity(JDBC)是把写入Java的程序连接至流行数据库中的数据的应用程序接口(API)规格。该应用程序接口允许用户以结构性查询语言(SQL)来给访问请求语句(statement)编码,然后被送至管理数据库的程序。数据库管理器通过相同接口返回结果。一种市场上可得的JDBC驱动器具有存储使用中的全部数据库资源的语句句柄(handle)阵列。如果全部数据库句柄都在使用中,则系统即使有充足存储器可用也被认为“资源用尽”。因此,用户应负责确保先前打开的任何JDBC连接都最终被关闭。然而,将不可避免的是,用户未能适当地管理这些资源,最终导致资源的不可达到的数量高得不可接受。在本发明的一个实施例中,特别地建立记日志插件以观察语句句柄结构。在显得正常的操作期间,记日志级别低。在检测到表明资源问题的阈值条件时,增加记日志活动。阈值条件可以是例如句柄结构中句柄的预定数量、在一定量时间内未使用的句柄的一定百分比/数量,等等。
在另一实施例中,上述记日志插件在记日志以外还可进行防止性动作。例如,在语句句柄的数量增长的情形中,对于语句句柄阵列中的各语句可以存在最后访问标志。该插件可被配置为增加记日志,明确地关闭连接和明确地关闭数据库资源。这可导致操作失败(failing),但却使整个系统和应用免于故障。
尽管上面的描述关于本发明的实施例,但在不脱离本发明的基本范围的情况下,可修改本发明的其它的和进一步的实施例,而其范围则由所附的权利要求来确定。
权利要求
1.一种在数据处理系统中管理对于处理所进行的记日志活动的方法,包括监视所述数据处理系统的至少一个系统状态参数;以及基于所述至少一个系统状态参数来管理关于所述处理的记日志活动。
2.根据权利要求1所述的方法,其中所述处理是应用的可执行实例。
3.根据权利要求1所述的方法,其中管理所述记日志活动包括增加所述记日志活动。
4.根据权利要求1所述的方法,还包括监视运行于所述数据处理系统中的一个或多个处理,以检测一个或多个处理中发生的事件;以及将重要性级别与各已发生事件相关联;并且其中,管理所述记日志活动包括根据所述至少一个系统状态参数和至少一个所关联的重要性级别来管理所述记日志活动。
5.根据权利要求1所述的方法,其中所述至少一个系统状态参数包括以下参数中的至少一个已使用的存储器;已分配的处理容量;处理的相对存储使用;和日志文件的大小,所述日志文件被配置以对与处理执行期间发生的事件有关的信息记日志。
6.一种为数据处理系统中执行处理期间发生的事件生成日志文件条目的方法,所述方法包括根据表示处理演化的趋势分析来确定已发生事件的重要性级别;将所确定的重要性级别与预定阈值相比较;以及仅当所确定的重要性级别超出所述预定阈值时为已发生事件创建日志文件条目。
7.根据权利要求6所述的方法,其中所述处理是应用的可执行实例。
8.根据权利要求6所述的方法,还包括在确定重要性级别之前,为各发生的事件在相应的日志文件中创建日志文件条目;确定数据处理系统的至少一个系统状态参数;以及将至少一个所确定的系统状态参数与所关联的预定参数阈值相比较;并且其中确定所述重要性级别包括仅当至少一个所确定的系统状态参数超出所述预定参数阈值时为发生的事件确定所述重要性级别。
9.根据权利要求8所述的方法,其中所述至少一个系统状态参数包括以下参数中的至少一个已使用的存储器;已分配的处理容量;处理的相对存储使用;和日志文件的大小,所述日志文件被配置以对与处理执行期间发生的事件有关的信息记日志。
10.根据权利要求8所述的方法,其中确定所述至少一个系统状态参数是根据预定时刻表而进行的。
11.根据权利要求6所述的方法,其中根据所述趋势分析来确定所述重要性级别包括确定处理执行参数以进行所述趋势分析。
12.根据权利要求6所述的方法,其中根据所述趋势分析来确定所述重要性级别包括确定所述数据处理系统的系统参数,所述数据处理系统包括可用存储容量以进行所述趋势分析。
13.根据权利要求6所述的方法,还包括根据用户输入来确定所述预定阈值。
14.根据权利要求6所述的方法,还包括根据预定义的处理参数来确定所述预定阈值。
15.根据权利要求6所述的方法,其中创建日志文件条目包括启动运行日志处理,来为所有随后发生的事件创建日志文件条目。
16.根据权利要求6所述的方法,还包括确定是否存在相应的日志文件;如果存在相应的日志文件,则将所创建的日志文件条目存储于所述日志文件;如果不存在相应的日志文件,则创建相应的日志文件;并将所创建的日志文件条目存储于所述日志文件。
17.一种计算机可读媒体,其包含的程序当被执行时进行这样的操作为数据处理系统中执行处理期间发生的事件生成日志文件条目,所述操作包括根据表示处理演化的趋势分析来确定已发生事件的重要性级别;将所确定的重要性级别与预定阈值相比较;以及仅当所确定的重要性级别超出所述预定阈值时,为已发生事件创建日志文件条目。
18.根据权利要求17所述的计算机可读媒体,其中所述处理是应用的可执行实例。
19.根据权利要求17所述的计算机可读媒体,其中所述操作还包括在确定所述重要性级别之前,为各发生的事件在相应的日志文件中创建日志文件条目;确定数据处理系统的至少一个系统状态参数;以及将至少一个所确定的系统状态参数与所关联的预定参数阈值相比较;并且其中确定所述重要性级别包括仅当至少一个所确定的系统状态参数超出所述预定阈值时为发生的事件确定重要性级别。
20.根据权利要求19所述的计算机可读媒体,其中所述至少一个系统状态参数包括以下参数中的至少一个已使用的存储器;已分配的处理容量;处理的相对存储使用;和日志文件的大小,所述日志文件被配置以对与处理执行期间发生的事件有关的信息记日志。
21.根据权利要求19所述的计算机可读媒体,其中确定所述至少一个系统状态参数是根据预定时刻表而进行的。
22.根据权利要求17所述的计算机可读媒体,其中根据所述趋势分析确定所述重要性级别包括确定处理执行参数以进行所述趋势分析。
23.根据权利要求17所述的计算机可读媒体,其中根据所述趋势分析确定所述重要性级别包括确定所述数据处理系统的系统参数,所述数据处理系统包括可用存储容量以进行所述趋势分析。
24.根据权利要求17所述的计算机可读媒体,其中所述操作还包括根据用户输入来确定所述预定阈值。
25.根据权利要求17所述的计算机可读媒体,其中所述操作还包括根据预定义的处理参数来确定所述预定阈值。
26.根据权利要求17所述的计算机可读媒体,其中生成日志文件条目包括启动运行日志处理,来为所有随后发生的事件创建日志文件条目。
27.根据权利要求17所述的计算机可读媒体,其中所述操作还包括确定是否存在相应的日志文件;如果存在相应的日志文件,则将所创建的日志文件条目存储于所述日志文件;如果不存在相应的日志文件,则创建相应的日志文件;并将所创建的日志文件条目存储于所述日志文件。
28.一种计算机可读媒体,包括事件管理器程序,用来为数据处理系统中的执行应用的各实例启动后台线程,所述后台线程被配置为监视所述数据处理系统的至少一个系统状态参数;监视运行于所述数据处理系统中的一个或多个处理,以检测一个或多个处理中发生的事件;将重要性级别与各已发生事件相关联;以及根据至少一个所关联的重要性级别和所述至少一个系统状态参数来识别将在所述数据处理系统中采取的预定动作。
29.根据权利要求28所述的计算机可读媒体,其中所述一个或多个处理中的至少一个是应用的可执行实例。
30.根据权利要求28所述的计算机程序产品,其中所述至少一个系统状态参数包括以下参数中的至少一个已使用的存储器;已分配的处理容量;所述一个或多个处理的相对存储使用;和一个或多个日志文件的大小,所述日志文件被配置以对与所述一个或多个处理执行期间发生的事件有关的信息记日志。
31.根据权利要求28所述的计算机程序产品,其中将采取的所述预定动作包括以下动作中的至少一个为相应的已发生事件生成日志文件条目;将相应的已发生事件通知用户;启动运行日志处理,来为所有随后发生的事件创建日志文件条目;以及禁止相应处理的增加的存储和处理容量使用。
32.一种数据处理系统,包括驻留存储器的事件管理器,用来为执行应用的各实例启动后台线程,所述后台线程被配置为监视所述数据处理系统的至少一个系统状态参数;监视运行于所述数据处理系统中的一个或多个处理,以检测一个或多个处理中发生的事件;将重要性级别与各已发生事件相关联;以及根据至少一个所关联的重要性级别和所述至少一个系统状态参数来识别将在所述数据处理系统中采取的预定动作;所述数据处理系统还包括运行所述一个或多个处理和所述至少一个后台线程的处理器。
全文摘要
一种数据处理系统中的事件管理的系统、方法和制造物品,更具体地说涉及为了提供有效的记日志机制而管理发生在数据处理系统中的事件。一个实施例提供了一种为在数据处理系统(110)中执行处理期间发生的事件生成日志文件条目(220)的方法。该方法包括基于表示处理(210)的演化的趋势分析来确定已发生事件(212)的重要性级别(218);和如果所确定的重要性级别超出预定阈值则为已发生事件(212)创建日志文件条目(220)。
文档编号G06F17/30GK1864157SQ200480012450
公开日2006年11月15日 申请日期2004年5月5日 优先权日2003年5月8日
发明者理查德·D·德廷杰, 弗雷德里克·A·库拉克, 理查德·J·史蒂文斯, 埃里克·W·威尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1