CN107168773A - 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 - Google Patents

一种jvm崩溃后问题定位及应用恢复的处理方法及装置 Download PDF

Info

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
Application number
CN201710438299.2A
Other languages
English (en)
Inventor
朱英澍
赵坤
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710438299.2A priority Critical patent/CN107168773A/zh
Publication of CN107168773A publication Critical patent/CN107168773A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, 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崩溃后问题定位及应用恢复的处理方法及装置。
背景技术
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代码执行报错;
③栈溢出报错。
CN201710438299.2A 2017-06-12 2017-06-12 一种jvm崩溃后问题定位及应用恢复的处理方法及装置 Pending CN107168773A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103701651A (zh) * 2013-12-31 2014-04-02 山东中创软件工程股份有限公司 一种国产环境下应用服务容灾装置和方法
KR20140069696A (ko) * 2012-11-29 2014-06-10 한국전자통신연구원 스토리지 장치의 연계 블록 선인출 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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