[发明专利]JAVA环境下异常业务线程检测与处理方法在审
申请号: | 201610920350.9 | 申请日: | 2016-10-21 |
公开(公告)号: | CN106485141A | 公开(公告)日: | 2017-03-08 |
发明(设计)人: | 涂君兰 | 申请(专利权)人: | 天津海量信息技术股份有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 300000 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种JAVA环境下异常业务线程检测与处理方法,包括如下步骤创建一个独立的监控线程状态的线程,该线程由主程序定时启动,定时的时间间隔可根据实际业务分析,主要参考实际业务中单个任务执行的平均耗时,以不超过平均耗时为最大间隔时间。该线程的任务主要有以下几个步骤步骤一获取并保存所有工作线程的启动时间,用于计算线程当前的耗时;步骤二识别异常线程;步骤三处理异常线程。本发明中提出了一种JAVA环境下异常业务线程检测与处理方法,通过监控可以及早地发现问题和解决系统中存在的问题,提供及时的性能数据和健康状况,以便对系统进行优化或在必要时启动补救措施,降低事故和灾难所造成的影响。 | ||
搜索关键词: | java 环境 异常 业务 线程 检测 处理 方法 | ||
【主权项】:
一种JAVA环境下异常业务线程检测与处理方法,其特征在于:包括如下步骤:步骤一:获取并保存所有工作线程的启动时间:JAVA环境下,每个线程都属于某个线程组,线程组表示一个线程的集合,线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组,通过最顶端的初始线程组可以获取程序中所有的线程,而最顶端的线程组可由当前线程向上回溯父线程,直到某个父线程的父线程为空,即可得到最顶端的线程组,一个工作节点程序包含多种业务线程,有创建工作线程的线程或有定时刷新缓存数据的线程,为识别需要的工作线程,可以在创建工作线程的同时为这种类型的线程取一个带有特殊前缀的名字,或者为实际工作的线程单独定义一种类型,通过这些特征过滤出需要关注的线程,程序需要定义一个全局Map来保存这些线程的启动时间,当此次检测到的线程为新开启的线程时,将当前时间作为启动时间与新线程的名字对应保存,保存完后,再从全局Map中除去已经完成任务的正常线程,保证Map不会无限增长;步骤二:识别异常线程:为保证工作节点的吞吐量,给每个线程设置一个最高运行耗时MaxTimeConsm(s/ms),循环上述步骤1的全局Map,用当前时间减去每个线程的启动时间,计算每个线程的当前耗时,当某个线程的耗时超过MaxTimeConsm,将该线程加入到疑似异常线程的队列中;步骤三:处理异常线程:当线程正在处理异常任务时,进程将呈现出频繁GC,单次GC的耗时较长,且老年代内存使用超过90%的状态,所以在处理异常线程队列之前,先获取当前线程所在进程的内存使用情况,检测点为最近一次GC时间、最近两次GC时间的间隔及当前进程的老年代内存情况,如果检测点都超过设定的阀值,则可证明当前耗时超长的线程中存在异常任务,后续则将异常线程队列中的任务转移到统一保存处以供后续分析处理,最后,将异常队列中的所有线程停止,使系统恢复稳定状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津海量信息技术股份有限公司,未经天津海量信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610920350.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种电能表的升级方法和升级系统
- 下一篇:版本升级方法及终端设备