CN107168773A - 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 - Google Patents
一种jvm崩溃后问题定位及应用恢复的处理方法及装置 Download PDFInfo
- Publication number
- CN107168773A CN107168773A CN201710438299.2A CN201710438299A CN107168773A CN 107168773 A CN107168773 A CN 107168773A CN 201710438299 A CN201710438299 A CN 201710438299A CN 107168773 A CN107168773 A CN 107168773A
- Authority
- CN
- China
- Prior art keywords
- jvm
- module
- crash
- error
- application
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种JVM崩溃后问题定位及应用恢复的处理方法及装置,其都基于日志监控模块和日志分析模块,在JVM崩溃后:首先通过日志监控模块实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,解析出jvm crash log具体路径;其次通过日志分析模块解析jvm crash log,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间,实现问题定位;再次基于应用重启模块,在应用程序崩溃、并进行完日志分析后,用于重启应用程序;最后还基于崩溃预警模块,在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时检查在连续时间内多次报警且超过设定阈值的模块,在超过阈值时中断该模块工作。本发明实现了问题的自动定位和应用恢复。
Description
技术领域
本发明涉及计算机应用崩溃后问题定位和数据恢复技术领域,具体地说是一种JVM崩溃后问题定位及应用恢复的处理方法及装置。
背景技术
JVM(Java虚拟机,英文名:Java Virtual Machine)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
Java应用程序会因为各种原因Crash,这个时候,会产生一个类似hs_error.log的日志文件。hs_error.log日志文件包含大量的关于引起此次崩溃的信息。可通过分析该日志,获取本次报错的具体信息。但是,目前只能通过人工定位、人工处理,无法实现自动化问题定位及处理。
基于此,设计一种JVM崩溃后问题定位及应用恢复的处理方法及装置,实现自动化问题定位及处理。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种JVM崩溃后问题定位及应用恢复的处理方法。
本发明的技术方案是按以下方式实现的:
一种JVM崩溃后问题定位及应用恢复的处理方法,该处理方法基于日志监控模块和日志分析模块;
该处理方法首先通过日志监控模块实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,解析出jvm crash log具体路径;
该处理方法其次通过日志分析模块解析jvm crash log,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间。
该处理方法还基于应用重启模块;
在应用程序崩溃、并进行完日志分析后,应用重启模块用于重启应用程序。
该处理方法还基于崩溃预警模块;
在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作。
上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
本发明提供一种JVM崩溃后问题定位及应用恢复的处理装置,该处理装置包括:
日志监控模块,用于实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,并解析出jvm crash log具体路径;
日志分析模块,用于解析jvm crash log,通过该日志,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间。
该处理装置还包括:
应用重启模块,其应用在应用程序崩溃、并进行完日志分析后,用于重启应用程序。
该处理装置还包括:
崩溃预警模块,在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作。
上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
本发明的一种JVM崩溃后问题定位及应用恢复的处理方法及装置与现有技术相比所产生的有益效果是:
本发明可以做到应用程序在发生崩溃时,将问题定位到具体的模块,并能够自动重启,同时,可在模块引起崩溃次数超过阈值时,中断对此模块的访问,防止再次引起应用的崩溃,实现了问题的自动定位和应用恢复,提高了效率。
附图说明
附图1是本发明实施例一的流程框图;
附图2是本发明实施例二的连接框图。
具体实施方式
下面结合附图1、2,对本发明的一种JVM崩溃后问题定位及应用恢复的处理方法及装置作以下详细说明。
实施例一:
如附图1所示,本发明的一种JVM崩溃后问题定位及应用恢复的处理方法,该处理方法基于日志监控模块和日志分析模块;
该处理方法首先通过日志监控模块实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,并解析出jvm crash log具体路径;
该处理方法其次通过日志分析模块解析jvm crash log,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间,实现了JVM崩溃的问题定位。
该处理方法还基于应用重启模块;
在应用程序崩溃、并进行完日志分析后,应用重启模块用于重启应用程序,实现了应用的恢复。
该处理方法还基于崩溃预警模块;
在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作,进一步避免由该模块使JVM再次发生崩溃。
上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
实施例二:
本发明提供一种JVM崩溃后问题定位及应用恢复的处理装置,该处理装置包括:
日志监控模块,用于实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,并解析出jvm crash log具体路径;
日志分析模块,用于解析jvm crash log,通过该日志,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间,实现了JVM崩溃的问题定位。
该处理装置还包括:
应用重启模块,其应用在应用程序崩溃、并进行完日志分析后,用于重启应用程序,实现了应用的恢复。
该处理装置还包括:
崩溃预警模块,在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作,进一步避免JVM再次发生崩溃。
上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
通过上述两个实施例,本发明可以做到应用程序在发生崩溃时,将问题定位到具体的模块,并能够自动重启,同时,可在模块引起崩溃次数超过阈值时,拦截对此模块的访问,防止再次引起应用的崩溃,实现了问题的自动定位和应用恢复,提高了效率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种JVM崩溃后问题定位及应用恢复的处理方法,其特征在于,该处理方法基于日志监控模块和日志分析模块;
该处理方法首先通过日志监控模块实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,解析出jvm crash log具体路径;
该处理方法其次通过日志分析模块解析jvm crash log,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间。
2.根据权利要求1所述的一种JVM崩溃后问题定位及应用恢复的处理方法,其特征在于,该处理方法还基于应用重启模块;
在应用程序崩溃、并进行完日志分析后,应用重启模块用于重启应用程序。
3.根据权利要求2所述的一种JVM崩溃后问题定位及应用恢复的处理方法,其特征在于,该处理方法还基于崩溃预警模块;
在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作。
4.根据权利要求1-3中任一项所述的一种JVM崩溃后问题定位及应用恢复的处理方法,其特征在于,上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
5.根据权利要求4所述的一种JVM崩溃后问题定位及应用恢复的处理方法,其特征在于,所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
6.一种JVM崩溃后问题定位及应用恢复的处理装置,其特征在于,该处理装置包括:
日志监控模块,用于实时监控应用程序的日志文件,并通过日志文件捕捉jvm崩溃信息,并解析出jvm crash log具体路径;
日志分析模块,用于解析jvm crash log,通过该日志,进行本次崩溃的问题定位,同时,还将报错点写入文件jvm_crash_warning,并记录报错时间。
7.根据权利要求6所述的一种JVM崩溃后问题定位及应用恢复的处理装置,其特征在于,该处理装置还包括:
应用重启模块,其应用在应用程序崩溃、并进行完日志分析后,用于重启应用程序。
8.根据权利要求7所述的一种JVM崩溃后问题定位及应用恢复的处理装置,其特征在于,该处理装置还包括:
崩溃预警模块,在应用程序启动后,崩溃预警模块用于检查日志分析模块生成的jvm_crash_warning文件,同时,检查在连续时间内多次报警且超过设定阈值的模块,并在超过设定阈值时中断该模块的工作。
9.根据权利要求6-8中任一项所述的一种JVM崩溃后问题定位及应用恢复的处理装置,其特征在于,上述日志分析模块通过解析jvm crash log可获得本次崩溃的如下信息:
1)触发致命错误的操作异常或者信号;
2)触发致命异常的线程详细信息和线程栈;
3)当前运行的线程列表和它们的状态;
4)堆的总括信息;
5)加载的本地库;
6)命令行参数。
10.根据权利要求9所述的一种JVM崩溃后问题定位及应用恢复的处理装置,其特征在于,所涉及触发致命错误的操作异常或者信号分类包括:
①进行JNI代码调用时报错;
②JVM代码执行报错;
③栈溢出报错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710438299.2A CN107168773A (zh) | 2017-06-12 | 2017-06-12 | 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710438299.2A CN107168773A (zh) | 2017-06-12 | 2017-06-12 | 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107168773A true CN107168773A (zh) | 2017-09-15 |
Family
ID=59825198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710438299.2A Pending CN107168773A (zh) | 2017-06-12 | 2017-06-12 | 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168773A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506256A (zh) * | 2017-09-07 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 一种崩溃数据监控的方法和装置 |
CN107748632A (zh) * | 2017-09-28 | 2018-03-02 | 努比亚技术有限公司 | 冻屏监测方法、移动终端及计算机可读存储介质 |
CN107861797A (zh) * | 2017-12-04 | 2018-03-30 | 北京奇艺世纪科技有限公司 | 一种基于jvm的预警方法和装置 |
CN108023764A (zh) * | 2017-11-01 | 2018-05-11 | 北京趣拿软件科技有限公司 | 异常处理方法和装置 |
CN110519126A (zh) * | 2019-09-19 | 2019-11-29 | 山东爱城市网信息技术有限公司 | 一种移动端行为监控方法 |
CN112463163A (zh) * | 2020-12-14 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种实现对功能模块代码问题快速定位的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701651A (zh) * | 2013-12-31 | 2014-04-02 | 山东中创软件工程股份有限公司 | 一种国产环境下应用服务容灾装置和方法 |
KR20140069696A (ko) * | 2012-11-29 | 2014-06-10 | 한국전자통신연구원 | 스토리지 장치의 연계 블록 선인출 장치 및 방법 |
-
2017
- 2017-06-12 CN CN201710438299.2A patent/CN107168773A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140069696A (ko) * | 2012-11-29 | 2014-06-10 | 한국전자통신연구원 | 스토리지 장치의 연계 블록 선인출 장치 및 방법 |
CN103701651A (zh) * | 2013-12-31 | 2014-04-02 | 山东中创软件工程股份有限公司 | 一种国产环境下应用服务容灾装置和方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506256A (zh) * | 2017-09-07 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 一种崩溃数据监控的方法和装置 |
CN107506256B (zh) * | 2017-09-07 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 一种崩溃数据监控的方法和装置 |
CN107748632A (zh) * | 2017-09-28 | 2018-03-02 | 努比亚技术有限公司 | 冻屏监测方法、移动终端及计算机可读存储介质 |
CN107748632B (zh) * | 2017-09-28 | 2021-11-02 | 努比亚技术有限公司 | 冻屏监测方法、移动终端及计算机可读存储介质 |
CN108023764A (zh) * | 2017-11-01 | 2018-05-11 | 北京趣拿软件科技有限公司 | 异常处理方法和装置 |
CN107861797A (zh) * | 2017-12-04 | 2018-03-30 | 北京奇艺世纪科技有限公司 | 一种基于jvm的预警方法和装置 |
CN110519126A (zh) * | 2019-09-19 | 2019-11-29 | 山东爱城市网信息技术有限公司 | 一种移动端行为监控方法 |
CN112463163A (zh) * | 2020-12-14 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种实现对功能模块代码问题快速定位的方法及装置 |
CN112463163B (zh) * | 2020-12-14 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种实现对功能模块代码问题快速定位的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168773A (zh) | 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 | |
US8458681B1 (en) | Method and system for optimizing the object code of a program | |
US9244815B2 (en) | Integrated debugger and code coverage tool | |
EP3660684A1 (en) | Efficient and comprehensive source code fuzzing | |
JP2009516239A (ja) | コンピュータアプリケーションの追跡及びモニタリングを行う汎用のマルチインスタンスメソッド及びgui検出システム | |
US7900198B2 (en) | Method and system for parameter profile compiling | |
US20110191752A1 (en) | Method and System for Debugging of Software on Target Devices | |
US8429632B1 (en) | Method and system for debugging merged functions within a program | |
CN101504626B (zh) | 一种调试控制实现方法及系统 | |
US8261243B2 (en) | Selective execution of trace mechanisms for applications having different bit structures | |
US8423970B2 (en) | Method, computer program product, and hardware product for handling breakpoints in an asynchronous debug model | |
CN109194606B (zh) | 攻击检测系统、方法、计算机设备及存储介质 | |
CN110941528A (zh) | 一种基于故障的日志埋点设置方法、装置及系统 | |
Baumann et al. | Reboots Are for Hardware: Challenges and Solutions to Updating an Operating System on the Fly. | |
CN104077220A (zh) | Mips架构操作系统内核的调试方法和装置 | |
US20060161896A1 (en) | Performing debug requests that are within the debug domain of a class loader | |
CN107357731A (zh) | 进程产生core dump问题的监控、分析和处理方法 | |
US9361206B2 (en) | Code coverage framework | |
CN104216771A (zh) | 软件程序的重启方法及装置 | |
CN109542444B (zh) | Java应用的监控方法、装置、服务器和存储介质 | |
CN110471832B (zh) | 程序运行的处理方法、装置及计算机可读存储介质 | |
CN109828759B (zh) | 代码编译方法、装置、计算机装置及存储介质 | |
Charlton et al. | Formal reasoning about runtime code update | |
CN101237350B (zh) | 用于多任务环境单板机的全局变量异常改写定位方法 | |
US7447947B2 (en) | System and method for economizing trace operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170915 |
|
RJ01 | Rejection of invention patent application after publication |