CN100555240C - 用于诊断应用程序的方法和系统 - Google Patents
用于诊断应用程序的方法和系统 Download PDFInfo
- Publication number
- CN100555240C CN100555240C CNB2007100017695A CN200710001769A CN100555240C CN 100555240 C CN100555240 C CN 100555240C CN B2007100017695 A CNB2007100017695 A CN B2007100017695A CN 200710001769 A CN200710001769 A CN 200710001769A CN 100555240 C CN100555240 C CN 100555240C
- Authority
- CN
- China
- Prior art keywords
- environment
- diagnostic
- main running
- application program
- running environment
- 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.)
- Expired - Fee Related
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012806 monitoring device Methods 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 16
- 230000002159 abnormal effect Effects 0.000 abstract description 9
- 238000004590 computer program Methods 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000002547 anomalous effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 208000024891 symptom Diseases 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101150034459 Parpbp gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005713 exacerbation Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于诊断应用程序的方法及其系统,其中方法包括步骤:复制应用程序的主运行环境,从而得到其影子环境;以及主运行环境与影子环境关于应用程序的故障而进行交互作用。其中,在主运行环境中执行步骤:监视系统异常的发生;和在发现系统异常的情况下,将系统异常信息发送给所述影子环境;以及在影子环境中执行步骤:从所述主运行环境接收系统异常信息,打开用于诊断的日志/跟踪功能,从而获得与系统异常有关的诊断日志/跟踪文件;和根据获得的诊断日志/跟踪文件,分析诊断结果。本发明还提供用于实现上述应用程序诊断方法的系统和计算机程序产品。本发明可以使用户容易地对应用程序进行诊断而不影响应用服务器的运行性能,优化了基于集成开发环境的日志机制。
Description
技术领域
本发明涉及计算机程序的故障诊断。更具体地说,本发明涉及利用环境复制来诊断应用程序的方法、系统和计算机程序产品。
背景技术
随着互联网的迅猛发展和WWW应用的快速增长,Java语言成为互联网上受到广泛欢迎的开发与编程语言。目前Java家族中包括三个主要的成员:J2ME(Java 2 Micro Edition,Java 2微型版)、J2SE(Java 2 Standard Edition,Java 2标准版)、和J2EE(Java 2Enterprise Edition,Jave 2企业版)。其中,J2EE由于具有跨平台可移植性、可获得开放源码库、具有巨大的服务器端部署库、以及涵盖大多数W3C(万维网联盟)标准等优点,在企业应用程序开发中非常受欢迎。目前,在J2EE服务器上运行着数以百万计的J2EE应用程序,而且越来越多的J2EE应用程序正在开发中。
随着J2EE应用程序的流行,调试和问题确定(problemdetermination)成为一个重要的问题。目前已经发布了几个与该问题相关的标准,例如“Java管理扩展规范(Java ManagementExtensions(JMX)Specification)”、“日志API规范(Logging APISpecification(JSR47))”、和“Java虚拟机的监视和管理规范(Monitoring and Management Specificaiton for the Java VirtualMachine(JSR174))”,等等。
对系统进行诊断时所发现的问题例如可以分为以下五个类别:
(1)功能或集成错误;
(2)性能不良;
(3)崩溃;
(4)挂起;
(5)存储器泄露。
在上面列出的五种问题中,后三种问题是难以检测的。原因在于它们通常出现在高容量的情况下,或者出现在长时间运行之后。因此,通常难以获取足够的信息以用于问题确定。可能出现问题的方面包括:JVM(Java虚拟机)本身、本机码(native code)、Java应用程序、系统或系统资源、子系统(例如数据库节点)、硬件,等等。
在遵循J2EE标准的各种应用服务器环境中提供了一些可用于问题确定的信息,例如包括:
Java转储(JavaDump):当JVM意外终止时默认地产生该Java转储数据,该数据概括了JVM在该时刻的状态;
堆转储(HeapDump):堆转储数据根据用户的请求产生。对于堆转储的定时的更精确的控制也可以利用Xdump:heap选项来规定;
系统转储(SystemDump):该系统转储数据也是由JVM产生的,它包含关于活动的进程、线程和系统存储器的信息,并通过Xdump:system选项来规定;
跟踪数据(Trace data):该文件包含运行中的JVM所收集的详细数据;
快照跟踪(Snap trace):该文件包含运行中的JVM所收集的少量跟踪数据,与通常的跟踪数据相似;
剖析(Profiling):该文件是一种较高级别的日志文件,能够对应用服务器的活动提供非常详细的记录;
垃圾收集数据(Garbage collection data):该数据由JVM利用verbose:gc选项产生,它用来分析在户应用程序的垃圾收集中的问题;
以及可以用于问题确定的其他数据,例JIT(Just In Time)数据、类加载数据、和共享的类,等等。
尽管以上这些信息可以用于问题确定,用户仍然面临在成本与有用性之间进行选择的两难境地。一方面,应用服务器在运行中有可能意外地崩溃/转储,而无法预测其时间。找到崩溃的原因是一件很困难的事情。尽管系统提供了一些最基本的可用于分析问题的信息,包括基本的日志文件(例如SystemOut.log等等)和前面提到过的转储文件,但是基本的日志文件不能提供关于应用服务器的活动的足够详细的信息,因而仅仅依赖这些日志文件不足以在应用服务器发生崩溃的情况下确定问题,而通常的转储文件仅包含应用服务器转储时的当前状态,而不包含其活动的历史记录,因此也不足以确定问题。另一方面,如果用户在运行时打开用于诊断的日志/跟踪功能以详细地记录应用服务器的活动,则系统性能将严重恶化,因为这些日志/跟踪功能的启用会占用大量的存储空间并使系统的运行速度显著下降,并且还有可能引起意想不到的问题。另外,太多的日志/跟踪数据意味着知识爆炸,同样使得用户很难确定问题。因此,在生产环境中,打开这样的用于诊断的日志/跟踪功能是不切实际的。
图1中示出了各种问题确定手段的有用性与其实现成本之间的关系。从图1中可以看出,具有较高有用性的手段意味着更高的成本,因此在生产环境中是难以实施的。
发明内容
本发明的主要目的是克服现有技术中的上述问题,提供一种能够在不影响应用服务器的运行性能的情况下,使用户容易地对应用程序进行诊断的方法、系统和计算机程序产品。
根据本发明的一个方面,提供一种用于对应用程序进行诊断的系统,包括所述应用程序的主运行环境及其至少一个影子环境,所述影子环境是通过对所述主运行环境进行复制而得到的,该系统还至少包括所述主运行环境中的诊断模块和所述影子环境中的诊断模块,二者之间可以关于应用程序的故障而进行交互作用,并且,所述主运行环境中的诊断模块包括:异常监视器,用于监视系统异常的发生;和异常通知器,用于在所述异常监视器发现系统异常的情况下,将系统异常信息发送给所述影子环境;并且,所述影子环境中的诊断模块包括:异常接收器,用于与所述异常通知器相通信,以接收所述系统异常信息;诊断管理器,用于根据所述异常接收器接收到的所述系统异常信息,打开用于诊断的日志/跟踪功能,从而获得与所述系统异常有关的诊断日志/跟踪文件;和诊断分析器,用于根据所述诊断管理器获得的诊断日志/跟踪文件,分析诊断结果。
根据本发明的另一个方面,提供一种用于诊断应用程序的方法,包括以下步骤:复制所述应用程序的主运行环境,从而得到其至少一个影子环境;以及所述主运行环境与所述影子环境关于应用程序的故障而进行交互作用。优选地,所述主运行环境与所述影子环境之间的交互作用包括:在所述主运行环境中执行下述步骤:监视系统异常的发生;和在发现系统异常的情况下,将系统异常信息发送给所述影子环境;以及,在所述影子环境中执行下述步骤:从所述主运行环境接收所述系统异常信息,根据接收到的所述系统异常信息,打开用于诊断的日志/跟踪功能,从而获得与所述系统异常有关的诊断日志/跟踪文件;和根据获得的诊断日志/跟踪文件,分析诊断结果。
根据本发明的另一个方面,提供一种计算机程序产品,包括程序代码,当所述程序代码被计算机执行时,使得计算机执行本发明的应用程序诊断方法。
与对应用程序进行问题确定的现有方法相比,本发明的优点是,当应用程序中出现异常时,系统可以自动地在“影子环境”(或者称为“副运行环境”)中打开用于诊断的日志/跟踪功能,因此能够详细地记录应用服务器的活动而不影响主运行环境中的应用服务器的运行性能。当主运行环境中的实例由于故障而崩溃时,则可以打开影子环境中的另一个实例的详细记录来对应用程序的故障进行诊断。另外,由于在影子环境中记录的仅仅是与系统异常相关的信息,因此用户可以根据所得到的诊断日志/跟踪文件容易地检测到应用服务器中发生的动作并找到故障原因,降低了应用服务器的工作负荷并能够实现按需记录错误,从而优化了基于集成开发环境的日志机制。本发明既可以用作基于集成开发环境开发应用程序的设计时工具,也可以用作运行时工具。
附图说明
根据以下参照附图对本发明优选实施例的详细描述,本发明的上述及其它目的、特征和优点将变得更加清楚,附图中采用相同或相似的标记来表示相同或相似的部件。
图1中示出了各种问题确定手段的有用性与实现成本之间的关系;
图2示意性地说明了本发明的利用环境复制来对应用程序进行诊断的原理;
图3示出了根据本发明优选实施例的、能够对应用程序进行诊断的系统的示意性框图;
图4示出了根据本发明优选实施例的、用于诊断应用程序的方法的流程图。
具体实施方式
图2示意性地说明了本发明的利用环境复制来对应用程序进行诊断的原理。本发明的核心思想是:根据应用程序的主运行环境复制一个或多个影子环境,该影子环境专门用来进行应用程序的故障诊断。本具体实施方式部分基于一个影子环境进行说明,但本领域技术人员根据本发明必然明了,两个或两个以上的影子环境同样能够解决本发明的技术问题并取得相应的技术效果,且本领域技术人员基于本发明由一个影子环境构造更多的影子环境不需要任何创造性的劳动。当运行应用程序时,分别启动主运行环境及其影子环境。与此同时,也分别在这两个环境中启动了“轻量级”诊断(S201和S203)。所谓“轻量级”诊断,是指根据系统提供的一些基本信息对系统状态进行监视,以便监视系统中发生的异常事件。当在主运行环境中检测到系统异常事件时(S205),则将其汇报给影子环境,并在影子环境中启动“重量级”诊断(S207),而主运行环境继续照常工作。所谓“重量级”诊断,是指打开用于诊断的日志/跟踪功能,以便详细地记录应用服务器的运行信息以供诊断分析使用。然后,在影子环境中,根据在“重量级”诊断中获得的详细的诊断日志/跟踪文件进行应用程序的诊断分析,从而识别问题并采取相应的措施。需要指出的是,图2仅仅是为了说明本发明的原理而在时间轴上示意性地而非按比例地表示出应用程序诊断系统的工作流。
图3示出了根据本发明优选实施例的、对J2EE应用程序进行诊断的系统300的示意性框图。
该系统300包括J2EE应用程序304的主运行环境302。该主运行环境302可以实现在符合J2EE标准的应用服务器平台、例如IBM公司的WebSphere应用服务器平台(包括WebSphere ApplicationServer 5.X版、WebSphere Application Server 6.X版,等等)上。WebSphere应用服务器平台用来部署作为Java服务器方代码实现的应用程序304,并且能够在Microsoft公司的Windows NT与Windows2000操作系统上使用,也可以在大多数UNIX操作系统变体(例如Sun Solaris、IBM AIX、HP-UX)以及IBM AS/400操作系统上使用,作为应用程序与操作系统之间的中间件。WebSphere应用服务器平台的集成开发环境316则囊括了J2EE应用程序304的构建、测试与部署的整个生命周期,为WebSphere应用服务器提供了完整的开发、测试环境。集成开发环境316例如可以由WebSphere产品家族中的WSAD(WebSphere Studio Application Developer)或者RAD(RationalApplication Developer)来实现。
系统300还包括一个影子环境302’(或称为“副运行环境”),专门用于应用程序的诊断。该影子环境302’是通过对主运行环境302进行复制而得到的。所谓的“复制”,指的是基于与主运行环境302同样的Websphere应用服务器平台或WebBlog应用服务器(并且注意,上述应用服务器只是示例性的,事实上任何应用服务器中间件都是适合的),按照与主运行环境302中的应用程序304同样的方式部署一个相同的应用程序304’。主运行环境302和影子环境302’中的集成开发环境316、316’并不是必须的。在优选的实施方式中,应用程序304’的集成开发环境316’与应用程序304的集成开发环境316相同,但本发明不限于此,而是可以采用不同的集成开发环境来构建、测试与部署应用程序304和304’。
为了实现应用程序的诊断,系统300还包括分别位于主运行环境302和影子环境302’中的诊断模块301和301’。如下面将详细说明的,这两个诊断模块之间将关于应用程序的故障而进行交互作用,事实上主运行环境302和影子环境302’中的诊断模块并不限于只有一个,而是可以有多个。另外可以进行相互作用或者相互间通讯的各种诊断模块都是适合于本发明的。作为优选,诊断模块301和301’分别包括以下子模块:异常监视器306和306’、异常通知器308和308’、异常接收器314和314’、诊断管理器310和310’,以及诊断分析器312和312’。需要说明的是,由于影子环境302’是主运行环境302的副本,因此图3中示出诊断模块301’包括与诊断模块301中的子模块306-314同样的子模块306’-314’。但是,在执行应用程序诊断的过程中,主运行环境中302和影子环境302’中起作用的子模块是不同的。在图3所示的实施例中,参与应用程序诊断的子模块包括主运行环境302中的异常监视器306和异常通知器308,以及影子环境302’中的异常接收器314’、诊断管理器310’和诊断分析器312’,而其他子模块不参与应用程序的诊断。
当然,这是从描述本实施例的角度而言的。在实际应用中,由于两个运行环境302和302’是完全相同的,所以其中任一个环境都可以作为主运行环境,而另外一个环境则作为该主运行环境的“影子”环境。在图3中所示的环境302’作为主运行环境而环境302作为其影子环境的情况下,参与应用程序诊断的子模块相应地变为环境302’中的异常监视器306’和异常通知器308’,以及环境302中的异常接收器314、诊断管理器310和诊断分析器312。
诊断模块301中的异常监视器306用于对系统的状态进行监视,以便监视系统异常事件的发生。例如,当系统日志文件中有异常信息、例如SystemErr.log时,异常监视器306分析该错误消息以便识别错误类别。异常通知器308用于将异常监视器306检测到的异常信息连同识别出的错误类别发送到影子环境302’。影子环境302’的诊断模块301’中的异常接收器314’用于与主运行环境302中的异常通知器308相通信,并从异常通知器308接收所述异常信息。诊断管理器310’用于根据所述异常接收器314’接收到的所述系统异常信息,打开与其相关的、用于诊断的日志/跟踪功能,从而获得与该系统异常有关的诊断日志/跟踪文件。诊断分析器312’用于根据所述诊断管理器310’获得的诊断日志/跟踪文件,分析诊断结果。
图4详细示出了根据本发明优选实施例的、用于诊断应用程序的方法400的流程图。
首先,在步骤402,对应用程序304的主运行环境302进行复制,得到一个影子环境302’,以便用来进行应用程序的故障诊断。根据优选的实施方式,所述影子环境302’包括与主运行环境302中的集成开发环境316相同的集成开发环境316’,以及部署在其上的、与主运行环境302中的应用程序304相同的应用程序304’。
在步骤404,启动主运行环境302和影子环境302’中的集成开发环境316和316’。
在步骤406,主运行环境302中的异常监视器306监视系统中的异常事件,例如内存不足、堆栈溢出、线程中断、线程死锁、找不到指定的文件、输入输出处理错误、数据库处理错误,等等。作为示例,异常监视器306可以通过监视系统日志文件来监视异常事件的发生。在运行中,WebSphere应用服务器将系统消息写到一些基本的日志文件中。这些日志文件例如包括JVM(标准)日志,该日志通过将JVM的System.out和System.err流重定向到独立的日志文件而创建。WebSphere应用服务器将格式化的消息写到System.out流。另外,应用程序和其他代码可以写入这些流,这通过使用流定义的print()和println()方法实现。在默认的情况下,经重定向而创建的日志文件被存储为<WAS_HOME>/logs/<server_name>/SystemOut.log文件和<WAS_HOME>/logs/<server_name>/SystemErr.log文件。System.out日志用于监控正在运行的WebSphere应用服务器的状态是否正常,而System.err日志则包含异常堆栈信息。日志条目的基本格式例如为
<时间戳><线程ID><组件><事件类型><消息ID><消息>。
当在步骤406中异常监视器306发现系统日志文件中有异常信息、例如SystemErr.log文件时,异常监视器306在步骤410中分析该错误消息并通过例如关键字匹配的方式识别错误类别。
在步骤412,主运行环境302中的异常通知器308将异常监视器306检测到的异常信息连同所识别的错误类别发送到影子环境302’。影子环境302’中的异常接收器314’用于接收该异常信息及识别的错误类别。根据本优选实施例,主运行环境302中的异常通知器308与影子环境302’中的异常接收器314’之间采用TCP Socket方式进行通信,其中异常接收器314’持续监听主运行环境302中的特定端口是否有连接请求,异常通知器308发出连接请求后,异常接收器314’向其发回确认消息,从而在二者之间建立起连接,用于异常信息的发送。本领域技术人员可以理解,主运行环境302与影子环境302’之间也可以采用其他任何合适的方式进行通信。
接下来,在步骤422,影子环境302’中的诊断管理器310’开始应用程序诊断。
在步骤424,诊断管理器310’按照策略自动地打开一组预定的、用于诊断的日志功能(例如剖析功能、IBM活动日志功能)和/或跟踪功能,以便详细地记录与所接收的异常信息相关的运行信息。这可以通过JMX调用打开日志/跟踪功能或者通过系统开关打开日志/跟踪功能来完成。
在步骤426,影子环境302’中的诊断分析器312’根据所述诊断管理器310’获得的诊断日志/跟踪文件,分析诊断结果。该诊断分析器312’例如可以由Websphere应用服务器平台提供的日志分析器来实现。该日志分析器是一种图形化用户接口(GUI)诊断工具,可以读取一个或多个日志/跟踪,合并所有数据并依次显示日志/跟踪条目。优选地,该诊断工具自带一个XML数据库即“症状数据库(Symptom database)”,其包含一些常见问题的信息串、错误原因以及恢复步骤。日志分析器自动地将诊断日志/跟踪文件中的每个错误记录与症状数据库中的已知问题的集合相比较并显示匹配项,使得用户可以获得错误消息的解释、和有关错误原因及如何恢复错误的信息。
由此,本发明提供了一种利用环境复制的应用程序诊断方法和系统。本发明可以采取全部硬件实现、全部软件实现或者包含硬件和软件元素两者实现的形式。在优选的实施例中,本发明是以软件方式实现的,其包括但不局限于固件、常驻软件、微代码等等。
此外,本发明可以采取计算机程序产品的形式,并可以从计算机可读介质访问。该计算机可读介质提供程序代码以结合计算机或者任何指令执行系统来使用。所述计算机可读介质可以是电子的、磁性的、光学的、电磁的、红外的或者半导体器件或装置。计算机可读介质的具体例子包括半导体或者固态存储器、磁带、可移动的计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括光盘只读存储器(CD-ROM)、读/写光盘(CD-R/W)和数字多用盘(DVD),等等。
上面已经参照特定实施例对本发明进行了详细描述。但是,对优选实施例的详细描述仅仅是示例性的,而不应被理解为限制性的。例如,在说明书中是结合IBM公司的Websphere应用服务器平台来描述本发明的。但是本领域技术人员可以理解,本发明不限于此,而是也可以应用于遵循J2EE标准的其他应用服务器平台、例如BEA公司的WebLogic应用服务器平台,等等。另外,本发明也不限于J2EE标准,而是可以应用于基于遵循任何工业标准的集成开发环境的应用程序开发、测试过程。
在不脱离本发明的精神和范围的情况下,本领域的技术人员可以进行各种修改和替换。本申请的保护范围应该由后附的权利要求书来确定。
Claims (13)
1、一种用于对应用程序进行诊断的系统,包括所述应用程序的主运行环境及其至少一个影子环境,所述影子环境是通过对所述主运行环境进行复制而得到的,该系统还至少包括所述主运行环境中的诊断模块和所述影子环境中的诊断模块,二者之间可以关于应用程序的故障而进行交互作用,并且,
所述主运行环境中的诊断模块包括:
异常监视器,用于监视系统异常的发生;和
异常通知器,用于在所述异常监视器发现系统异常的情况下,将系统异常信息发送给所述影子环境;
并且,
所述影子环境中的诊断模块包括:
异常接收器,用于与所述异常通知器相通信,以接收所述系统异常信息;
诊断管理器,用于根据所述异常接收器接收到的所述系统异常信息,打开用于诊断的日志/跟踪功能,从而获得与所述系统异常有关的诊断日志/跟踪文件;和
诊断分析器,用于根据所述诊断管理器获得的诊断日志/跟踪文件,分析诊断结果。
2、如权利要求1所述的系统,其中所述主运行环境中的诊断模块与所述影子环境中的诊断模块之间的交互作用包括系统异常信息的交换。
3、如权利要求1所述的用于对应用程序进行诊断的系统,其中所述异常监视器通过监视基本的系统日志文件来监视所述系统异常的发生。
4、如权利要求1所述的用于对应用程序进行诊断的系统,其中所述主运行环境中的并常通知器与所述影子环境中的并常接收器之间的通信是Socket通信。
5、如权利要求1所述的用于对应用程序进行诊断的系统,其中通过JMX调用或者系统开关打开所述用于诊断的日志/跟踪功能。
6、如权利要求1所述的用于对应用程序进行诊断的系统,其中所述系统遵循J2EE标准,并且所述主运行环境和所述影子环境实现在WebSphere应用服务器平台或WebLogic应用服务器平台上。
7、一种用于诊断应用程序的方法,包括以下步骤:
复制所述应用程序的主运行环境,从而得到其至少一个影子环境;以及
所述主运行环境与所述影子环境关于应用程序的故障而进行交互作用。
8、如权利要求7所述的方法,其中所述交互作用包括系统异常信息的交换。
9、如权利要求7、8中任一项所述的用于诊断应用程序的方法,所述主运行环境与所述影子环境之间的交互作用包括:
在所述主运行环境中执行下述步骤:
监视系统异常的发生;和
在发现系统异常的情况下,将系统异常信息发送给所述影子环境;
以及,
在所述影子环境中执行下述步骤:
从所述主运行环境接收所述系统异常信息,
根据接收到的所述系统异常信息,打开用于诊断的日志/跟踪功能,从而获得与所述系统异常有关的诊断日志/跟踪文件;和
根据获得的诊断日志/跟踪文件,分析诊断结果。
10、如权利要求9所述的用于诊断应用程序的方法,其中通过监视基本的系统日志文件来监视所述系统异常的发生。
11、如权利要求9所述的用于诊断应用程序的方法,其中所述主运行环境与所述影子环境之间的通信为Socket通信。
12、如权利要求9所述的用于诊断应用程序的方法,其中通过JMX调用或者系统开关打开所述用于诊断的日志/跟踪功能。
13、如权利要求9所述的用于诊断应用程序的方法,其中所述方法遵循J2EE标准,并且所述主运行环境和所述影子环境实现在WebSphere应用服务器平台或WebLogic应用服务器平台上。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100017695A CN100555240C (zh) | 2007-01-16 | 2007-01-16 | 用于诊断应用程序的方法和系统 |
US12/014,209 US7930590B2 (en) | 2007-01-16 | 2008-01-15 | Method and system for diagnosing an application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100017695A CN100555240C (zh) | 2007-01-16 | 2007-01-16 | 用于诊断应用程序的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101226499A CN101226499A (zh) | 2008-07-23 |
CN100555240C true CN100555240C (zh) | 2009-10-28 |
Family
ID=39733984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100017695A Expired - Fee Related CN100555240C (zh) | 2007-01-16 | 2007-01-16 | 用于诊断应用程序的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7930590B2 (zh) |
CN (1) | CN100555240C (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8141056B2 (en) * | 2008-04-03 | 2012-03-20 | International Business Machines Corporation | Just-in-time dynamic instrumentation |
CN101661425B (zh) * | 2008-08-26 | 2012-03-21 | 国际商业机器公司 | 测试覆盖分析方法和装置 |
CN101800730B (zh) * | 2009-02-09 | 2013-02-27 | 国际商业机器公司 | 安全增强的虚拟机通信方法和虚拟机系统 |
US20110047358A1 (en) * | 2009-08-19 | 2011-02-24 | International Business Machines Corporation | In-Data Path Tracking of Floating Point Exceptions and Store-Based Exception Indication |
US8458684B2 (en) * | 2009-08-19 | 2013-06-04 | International Business Machines Corporation | Insertion of operation-and-indicate instructions for optimized SIMD code |
CN101876938B (zh) * | 2009-11-11 | 2012-10-10 | 北京神州泰岳软件股份有限公司 | 一种基于消息队列的应用软件响应时间测量方法及系统 |
US8327189B1 (en) * | 2009-12-22 | 2012-12-04 | Emc Corporation | Diagnosing an incident on a computer system using a diagnostics analyzer database |
CN102143008A (zh) | 2010-01-29 | 2011-08-03 | 国际商业机器公司 | 用于数据中心的诊断故障事件的方法及装置 |
US8499197B2 (en) * | 2010-11-15 | 2013-07-30 | Microsoft Corporation | Description language for identifying performance issues in event traces |
US8850172B2 (en) | 2010-11-15 | 2014-09-30 | Microsoft Corporation | Analyzing performance of computing devices in usage scenarios |
CN103339608A (zh) * | 2011-01-31 | 2013-10-02 | 汤姆逊许可公司 | 诊断信息日志记录 |
CN103135518B (zh) * | 2011-12-02 | 2019-11-12 | 费希尔控制国际公司 | 程序流控制监控例程、与之相关的方法以及系统 |
CN102662831B (zh) * | 2012-03-20 | 2015-02-11 | 中国人民解放军国防科学技术大学 | 一种容错系统诊断策略优化方法 |
US8874967B2 (en) * | 2012-03-30 | 2014-10-28 | Ncr Corporation | Managing code-tracing data |
CN102981943B (zh) * | 2012-10-29 | 2016-05-11 | 新浪技术(中国)有限公司 | 监控应用日志的方法及系统 |
US9069668B2 (en) | 2012-11-14 | 2015-06-30 | International Business Machines Corporation | Diagnosing distributed applications using application logs and request processing paths |
US20140181145A1 (en) * | 2012-12-26 | 2014-06-26 | Jafer S. KAMSAMOHIDEEN | Modular Software System for Use in an Integration Software Technology and Method of Use |
US9503341B2 (en) | 2013-09-20 | 2016-11-22 | Microsoft Technology Licensing, Llc | Dynamic discovery of applications, external dependencies, and relationships |
US10255158B2 (en) * | 2013-10-15 | 2019-04-09 | Oracle International Corporation | Monitoring and diagnostics of business transaction failures |
CN104731566B (zh) * | 2013-12-19 | 2018-12-25 | 华为软件技术有限公司 | 集成开发环境测试装置、方法及系统 |
US10049027B2 (en) | 2013-12-23 | 2018-08-14 | International Business Machines Corporation | Creating trace data from recent software output and activity |
CN104978212B (zh) * | 2014-05-16 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种未知crash上报方法和装置 |
RU2580016C1 (ru) * | 2014-10-17 | 2016-04-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ передачи управления между областями памяти |
CN104503903B (zh) * | 2014-12-12 | 2017-05-17 | 上海新炬网络信息技术有限公司 | 一种weblogic中间件故障自动诊断方法 |
US9632914B2 (en) | 2015-05-21 | 2017-04-25 | International Business Machines Corporation | Error diagnostic in a production environment |
CN106557415B (zh) * | 2015-09-28 | 2019-05-03 | 北京国双科技有限公司 | 程序运行异常的处理方法及装置 |
US9436583B1 (en) | 2015-11-06 | 2016-09-06 | International Business Machines Corporation | Minimally disruptive debugging in a production environment |
US10037238B2 (en) * | 2016-02-10 | 2018-07-31 | Dell Products, L.P. | System and method for encoding exception conditions included at a remediation database |
CN106020859A (zh) * | 2016-05-04 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 一种终端上应用的安装方法和装置 |
RU2634172C1 (ru) | 2016-06-02 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Способ передачи управления между адресными пространствами |
US10372588B2 (en) * | 2016-07-08 | 2019-08-06 | International Business Machines Corporation | Providing debug information on production containers using debug containers |
US10169130B2 (en) * | 2016-07-19 | 2019-01-01 | International Business Machines Corporation | Tailoring diagnostic information in a multithreaded environment |
US10042737B2 (en) * | 2016-08-31 | 2018-08-07 | Microsoft Technology Licensing, Llc | Program tracing for time travel debugging and analysis |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10489273B2 (en) | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10310977B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10310963B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
US10540250B2 (en) | 2016-11-11 | 2020-01-21 | Microsoft Technology Licensing, Llc | Reducing storage requirements for storing memory addresses and values |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
CN110245066B (zh) * | 2018-03-09 | 2023-04-14 | 财付通支付科技有限公司 | 应用运行环境创建方法、创建装置、电子设备及存储介质 |
CN109615312A (zh) * | 2018-10-23 | 2019-04-12 | 平安科技(深圳)有限公司 | 业务执行中的异常排查方法、装置、电子设备和存储介质 |
US11023305B2 (en) | 2018-11-27 | 2021-06-01 | International Business Machines Corporation | Obtaining diagnostic information |
CN110457631A (zh) * | 2019-07-30 | 2019-11-15 | 维沃移动通信有限公司 | 跳转异常信息确定方法及装置 |
US10949282B1 (en) | 2019-08-22 | 2021-03-16 | Microsoft Technology Licensing, Llc | Triggering diagnostic data generation and aggregation across multiple systems to reduce computing resources |
CN111274059B (zh) * | 2020-01-21 | 2023-10-10 | 浙江大华技术股份有限公司 | 一种从设备的软件异常处理方法及装置 |
US11449408B2 (en) * | 2020-03-26 | 2022-09-20 | EMC IP Holding Company LLC | Method, device, and computer program product for obtaining diagnostic information |
CN114077525A (zh) * | 2020-08-17 | 2022-02-22 | 鸿富锦精密电子(天津)有限公司 | 异常日志处理方法、装置、终端设备、云服务器及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式系统软件开发的虚拟机装置 |
CN1648870A (zh) * | 2005-03-09 | 2005-08-03 | 北京软通科技有限责任公司 | 计算机系统硬件设备自动检测的方法 |
CN1873617A (zh) * | 2005-06-03 | 2006-12-06 | 鸿富锦精密工业(深圳)有限公司 | 主板故障诊断卡错误代码的识别方法及系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6911987B1 (en) * | 1995-07-05 | 2005-06-28 | Microsoft Corporation | Method and system for transmitting data for a shared application |
US5874960A (en) * | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
US6393582B1 (en) * | 1998-12-10 | 2002-05-21 | Compaq Computer Corporation | Error self-checking and recovery using lock-step processor pair architecture |
US6499113B1 (en) * | 1999-08-31 | 2002-12-24 | Sun Microsystems, Inc. | Method and apparatus for extracting first failure and attendant operating information from computer system devices |
US6934937B1 (en) * | 2000-03-30 | 2005-08-23 | Broadcom Corporation | Multi-channel, multi-service debug on a pipelined CPU architecture |
US6539337B1 (en) | 2000-06-15 | 2003-03-25 | Innovative Technology Licensing, Llc | Embedded diagnostic system and method |
US6691250B1 (en) | 2000-06-29 | 2004-02-10 | Cisco Technology, Inc. | Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems |
US6766472B2 (en) | 2000-09-22 | 2004-07-20 | Microsoft Corporation | Systems and methods for replicating virtual memory on a host computer and debugging using the replicated memory |
US6604177B1 (en) * | 2000-09-29 | 2003-08-05 | Hewlett-Packard Development Company, L.P. | Communication of dissimilar data between lock-stepped processors |
US7197745B2 (en) * | 2003-05-02 | 2007-03-27 | Microsoft Corporation | User debugger for use on processes running in a high assurance kernel in an operating system |
US7330859B2 (en) * | 2003-09-10 | 2008-02-12 | International Business Machines Corporation | Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server |
US7293044B2 (en) * | 2004-04-09 | 2007-11-06 | Microsoft Corporation | Method and system for verifying integrity of storage |
GB0418306D0 (en) * | 2004-08-17 | 2004-09-15 | Ibm | Debugging an application process at runtime |
US7200742B2 (en) * | 2005-02-10 | 2007-04-03 | International Business Machines Corporation | System and method for creating precise exceptions |
TWI331278B (en) * | 2007-03-14 | 2010-10-01 | Ind Tech Res Inst | Debug method |
US20090183035A1 (en) * | 2008-01-10 | 2009-07-16 | Butler Michael G | Processor including hybrid redundancy for logic error protection |
-
2007
- 2007-01-16 CN CNB2007100017695A patent/CN100555240C/zh not_active Expired - Fee Related
-
2008
- 2008-01-15 US US12/014,209 patent/US7930590B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490724A (zh) * | 2002-10-18 | 2004-04-21 | 上海贝尔有限公司 | 一种用于嵌入式系统软件开发的虚拟机装置 |
CN1648870A (zh) * | 2005-03-09 | 2005-08-03 | 北京软通科技有限责任公司 | 计算机系统硬件设备自动检测的方法 |
CN1873617A (zh) * | 2005-06-03 | 2006-12-06 | 鸿富锦精密工业(深圳)有限公司 | 主板故障诊断卡错误代码的识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101226499A (zh) | 2008-07-23 |
US7930590B2 (en) | 2011-04-19 |
US20080215922A1 (en) | 2008-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100555240C (zh) | 用于诊断应用程序的方法和系统 | |
US7877642B2 (en) | Automatic software fault diagnosis by exploiting application signatures | |
US7698691B2 (en) | Server application state | |
US9471474B2 (en) | Cloud deployment infrastructure validation engine | |
US7058927B2 (en) | Computer software run-time analysis systems and methods | |
KR101470712B1 (ko) | 컴퓨터 애플리케이션에서의 데이터 손실을 최소화하기 위한 방법 및 시스템 | |
US7941707B2 (en) | Gathering information for use in diagnostic data dumping upon failure occurrence | |
US7263632B2 (en) | Programmatic computer problem diagnosis and resolution and automated reporting and updating of the same | |
US8140908B2 (en) | System and method of client side analysis for identifying failing RAM after a user mode or kernel mode exception | |
US20040128583A1 (en) | Method and system for monitoring, diagnosing, and correcting system problems | |
CN100504809C (zh) | 在不同的语言环境下实现测试脚本回放的装置和方法 | |
CN1573713A (zh) | 可插元件上的断点调试 | |
US20030084376A1 (en) | Software crash event analysis method and system | |
US8001424B2 (en) | System and method for fault mapping of exceptions across programming models | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
Yu et al. | Logreducer: Identify and reduce log hotspots in kernel on the fly | |
Cook et al. | Toward self-healing multitier services | |
US20060248531A1 (en) | Information processing device, information processing method and computer-readable medium having information processing program | |
CN113986622A (zh) | Sdk异常的自检方法、装置、介质和计算设备 | |
CN112181759A (zh) | 一种微服务性能监视及异常诊断的方法 | |
He et al. | TFix: Automatic Timeout Bug Fixing in Production Server Systems | |
US7305583B2 (en) | Command initiated logical dumping facility | |
Huang | Assisting failure diagnosis through filesystem instrumentation | |
JP2003256242A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180619 Address after: 7 floor, building 10, Zhang Jiang Innovation Park, 399 Keyuan Road, Zhang Jiang high tech park, Pudong New Area, Shanghai. Patentee after: International Business Machines (China) Co., Ltd. Address before: American New York Patentee before: International Business Machines Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091028 Termination date: 20190116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |