CN104503903B - 一种weblogic中间件故障自动诊断方法 - Google Patents
一种weblogic中间件故障自动诊断方法 Download PDFInfo
- Publication number
- CN104503903B CN104503903B CN201410767183.XA CN201410767183A CN104503903B CN 104503903 B CN104503903 B CN 104503903B CN 201410767183 A CN201410767183 A CN 201410767183A CN 104503903 B CN104503903 B CN 104503903B
- Authority
- CN
- China
- Prior art keywords
- weblogic
- bug
- fault
- middlewares
- information
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种weblogic中间件故障自动诊断方法,包括如下步骤:a)预先收集weblogic中间件各个版本的bug信息;b)预先定义诊断故障的关键字;c)采用Java管理扩展方法自动获取当前weblogic中间件运行的各种故障信息,并通过预先定义的关键字快速搜索定位诊断故障;d)从获取的故障信息中查找各个版本的bug信息,并给出匹配bug对应的补丁号。本发明通过预先收集weblogic中间件各个版本的bug信息,预先定义诊断故障的关键字,统一收集各种故障信息,从而能够在故障发生时快速定位,并可通过故障关键字和匹配bug对应的补丁号及时解决问题,减少人工干预,实现自动诊断功能。
Description
技术领域
本发明涉及一种软件故障诊断方法,尤其涉及一种weblogic中间件故障自动诊断方法。
背景技术
WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。从weblogic4.0到如今的12c,整整经历了10多年的发展,版本也经过多次的更新。WebLogic长期以来一直被认为是市场上最好的J2EE工具之一。目前在世界application server市场上占有最大的份额,其他还有象金蝶Apusic应用服务器、IBM的websphere,免费的tomcat、resin等中间件。weblogic被广泛使用与电信、金融、电力、航空、政府等各个行业。同样此类中间件的维护也面临越来越大的挑战,客户的核心、关键的系统都部署在weblogic平台,一旦发生紧急故障,如果不能及时得到解决,后果将不堪设想。
现有技术中的故障诊断,一般来说,大概有几个动作:一、查找相关日志,发现是否有明显的错误信息;二、手工产生threaddump,分析线程使用情况,确认是否存在过载、阻塞、死锁等;三、检查jvm内存回收情况,查看gc回收时间;四、检查关联数据库使用情况,如连接使用情况,连接等待情况等;五、检查所在主机的资源消耗情况,如进程的cpu使用情况、网络连接情况、内存消耗情况等等。按照这种处理步骤,不难发现,处理时间至少半小时或者更长。对客户来说,这样的处理效率无疑是一场灾难。
由上可见,现有技术直接对中间件服务器收集故障数据,并人工分析产生问题的原因,因此,存在如下缺点:
1)、效率低下。首先是人工采集数据,中间可能需要使用各种命令、工具;有些数据需要下载到本地,即使是很熟练的工程师,估计也得消耗半小时或者更长时间才能有个初步的诊断。
2)、容易引起误操作。由于要求短时间内快速故障处理。非常容易引起误操作,导致前功尽弃。
3)、长时间业务中断。不能快速修复问题,意味着业务中断的时间大大拉长,将大大降低客户的满意度。
4)、影响问题诊断。由于没有很好的自动化运维机制,很多处理案例都是粗暴的重启应用服务器,这种重启只能短暂的缓解问题,但不能从根本上杜绝故障再次发生。
发明内容
本发明所要解决的技术问题是提供一种weblogic中间件故障自动诊断方法,能够在故障发生时快速定位,并通过建议的修复方法及时解决问题,减少人工干预,实现自动诊断功能。
本发明为解决上述技术问题而采用的技术方案是提供一种weblogic中间件故障自动诊断方法,包括如下步骤:a)预先收集weblogic中间件各个版本的bug信息;b)预先定义诊断故障的关键字;c)采用Java管理扩展方法自动获取当前weblogic中间件运行的各种故障信息,并通过所述预先定义的关键字快速搜索定位诊断故障;d)从获取的故障信息中查找各个版本的bug信息,并给出匹配bug对应的补丁号。
上述的weblogic中间件故障自动诊断方法,其中,所述步骤a)中预先收集bug信息包括weblogic中间件各系列版本的bug列表及bug场景数据,所述步骤d)通过对预先收集的bug场景数据与故障信息进行比对、过滤,得到匹配bug。
上述的weblogic中间件故障自动诊断方法,其中,所述b)中预先定义的关键字包括dead lock、jdbc leak或out of memory。
上述的weblogic中间件故障自动诊断方法,其中,所述步骤c)通过调用weblogic的jmx接口获取当前weblogic中间件运行的各种故障信息。
上述的weblogic中间件故障自动诊断方法,其中,所述步骤c)通过修改weblogic启动脚本后,使用java jmx远程功能获取当前weblogic中间件运行的各种故障信息。
上述的weblogic中间件故障自动诊断方法,其中,所述c)中获取的故障信息包括故障点的堆内存使用情况、故障点的线程使用信息、故障点的连接池使用情况、故障点的jms使用情况、故障点的wtc使用情况以及故障点的线程堆栈信息。
本发明对比现有技术有如下的有益效果:本发明提供的weblogic中间件故障自动诊断方法,通过预先收集weblogic中间件各个版本的bug信息,预先定义诊断故障的关键字,统一收集各种故障信息,从而能够在故障发生时快速定位,并可通过故障关键字和匹配bug对应的补丁号及时解决问题,减少人工干预,实现自动诊断功能。
附图说明
图1为本发明weblogic中间件故障自动诊断流程示意图;
图2为本发明获取故障信息及快速定位诊断示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明weblogic中间件故障自动诊断流程示意图。
请参见图1,本发明提供的weblogic中间件故障自动诊断方法包括如下步骤:
步骤S1:预先收集weblogic中间件各个版本的bug信息;预先收集bug信息包括weblogic中间件各系列版本的bug列表及bug场景数据;
步骤S2:预先定义诊断故障的关键字;如dead lock、jdbc leak或out of memory等关键字;
步骤S3:采用Java管理扩展方法自动获取当前weblogic中间件运行的各种故障信息,并通过所述预先定义的关键字快速搜索定位诊断故障;比如通过调用weblogic的jmx接口获取当前weblogic中间件运行的各种故障信息;或者修改weblogic启动脚本后,使用java jmx远程功能获取当前weblogic中间件运行的各种故障信息。
步骤S4:从获取的故障信息中查找各个版本的bug信息,并给出匹配bug对应的补丁号;具体可通过对预先收集的bug场景数据与故障信息进行比对、过滤,得到匹配bug。
本发明提供的weblogic中间件故障自动诊断方法,借助JMX技术手段,全面自动获取各种故障信息,并实现快速定位诊断,如图2所示;获取的具体故障信息如下:
(a)获取故障点的堆内存使用情况;
(b)获取故障点的线程使用信息;
(c)获取故障点的连接池使用情况;
(d)获取故障点的jms使用情况;
(e)获取故障点的wtc使用情况;
(f)获取故障点的线程堆栈信息;
(g)及其它信息。
本发明提供的weblogic中间件故障自动诊断方法,采用如下两种使用jmx监控诊断weblogic的方法:(1)、调用weblogic的jmx接口实现(2)、使用java jmx远程功能,此功能需要修改weblogic启动脚本,并重启server才能生效。
下面具体介绍第一种方法:
a.定义接口WebLogicMBean,该接口继承了DynamicMBean(上面描述的dynamicMBean必须实现的接口),MBeanRegistration(用于MBean在Agent注册),NotificationBroadcaster(用于发送Notification,参见JMX Notification Model)。所有的weblogic的MBean都是该接口的子类。也就是说,weblogic里面所有的MBean都是dynamicMBean,当然,也可以自定义写一些standard MBean注册到weblogic的Agent上去。
WebLogicMBean主要具有以下三种类型的MBeans:
Administration MBeans,封装从config.xml读取的整个weblgoic domain的配置信息。
Configuration MBeans,每个weblogic server一份,是Administration MBeans的copy,用于server配置自己
Runtime MBeans,代表着运行时刻WebLogic Server的各种组件和子系统。
本发明可通过weblogic提供的HTMl形式的控制台对weblogic的配置操作,最终都通过调用Administration MBeans实现,在系统运行结束时写回config.xml配置文件。因此完全可以写一个Swing格式的控制台或者来对weblogic进行配置。或者说,对于最终用户比较关心的JDBC数据源的信息,完全可以写一个图形界面来配置。从而不让用户通过浏览器进入weblogic自己带的console进行操作。这样就可以避免用户修改一些很关键的系统信息。
在weblogic server的JMX Agent的视图里,一个EJB组件,一个JDBC数据源都是Runtime MBeans,甚至weblgoic自己的shutdown类也是一个Runtime MBeans。weblogic为各种资源定义了不同的子Runtime MBeans接口。
比如对大家都熟悉的EJB来说,就定义了接口EJBRuntimeMBean,而且更详细的是,对于不同的Bean还定义了不同子接口,比如:EntityEJBRuntimeMBean,MessageDrivenEJBRuntimeMBean,StatefulEJBRuntimeMBean,StatelessEJBRuntimeMBean。
当调用一个EJB的某个方法时,请求会首先送到JMX的Agent,Agnet根据请求确定要访问哪一个Runtime MBeans,然后调用该Runtime MBeans的方法,这是通过DynamicMBean的方法invoke(java.lang.String actionName,java.lang.Object[]params,java.lang.String[]signature)(actionName:要调用的方法名;params:参数数组;signature:该方法的型构)来实现的,invoke的返回结果就是被调用的ejb的方法的返回结果。最后,将结果返回给调用者。
b.为MBean定义了Home接口,这是JMX1.0规范所没有的,这样,对于应用程序来说就可以像访问EJB那样在远程首先通过JNDI查找该MBean的Home接口,获得Home接口后就可以获得该MBean,然后,就可以通过MBean对资源进行管理操作。这个流程与EJB几乎完全一样。
在获取相关数据后,根据自定义的关键字,自动诊断产生问题产生的原因。由于故障原因千奇百怪,故障日志庞大,高效、快速的搜索功能尤为关键,否则将影响诊断的效率,本发明通过预先定义诊断故障的关键字,从而对庞大故障日志实现高效、快速的搜索。为了避免遇到产品本身bug的时候,给自动诊断带来阻力。本发明预先收集weblogic各系列版本的bug列表及bug场景数据,通过对收集数据的比对、过滤,得到bug号及补丁号,从而实现自动诊断功能;同样要求高效的搜索的功能。
综上所述,本发明统一收集并获取关键信息,杜绝了故障当时敲入命令、人工抓取等等耗时的工作,从而为故障的快速处理赢得了时间。本发明将储存大量的官方故障处理案例,各个weblogic系列版本bug信息;极大得方便分析问题,同时通过强大的搜索功能,基本上可以做到:不用通过网络搜索,也能准确提供解决方案。利用此发明,能够最大限度的保证业务系统长期、稳定运行。同时借助本发明的自动诊断功能,可以在第一时间发现问题产生原因,为后面的进一步分析奠定了基础。具体优点如下:1)、快递定位。由于所有的数据抓取、数据分析都是后台完成,因此也许点击一个按钮,问题的原因及解决思路就已经展示出来。2)、避免误操作。人为登陆主机,手工敲入命令的旧的解决的思路将被丢弃。一种全新的处理流程出现。3)、业务快速恢复。由于大大加快了故障的诊断效率,问题得以快速的解决,业务中断的时间也大大降低。4)、避免同类问题再次发生。在极短的时间内获取到了故障时刻的关键数据,也赢得了时间,有助与分析问题、解决问题,避免了那种粗暴重启导致问题再现的可能。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (4)
1.一种weblogic中间件故障自动诊断方法,其特征在于,包括如下步骤:
a)预先收集weblogic中间件各个版本的bug信息;
b)预先定义诊断故障的关键字;
c)采用Java管理扩展方法自动获取当前weblogic中间件运行的各种故障信息,并通过所述预先定义的关键字快速搜索定位诊断故障;
d)从获取的故障信息中查找各个版本的bug信息,并给出匹配bug对应的补丁号;
所述步骤c)通过调用weblogic的jmx接口获取当前weblogic中间件运行的各种故障信息;或者所述步骤c)通过修改weblogic启动脚本后,使用java jmx远程功能获取当前weblogic中间件运行的各种故障信息。
2.如权利要求1所述的weblogic中间件故障自动诊断方法,其特征在于,所述步骤a)中预先收集bug信息包括weblogic中间件各系列版本的bug列表及bug场景数据,所述步骤d)通过对预先收集的bug场景数据与故障信息进行比对、过滤,得到匹配bug。
3.如权利要求1所述的weblogic中间件故障自动诊断方法,其特征在于,所述b)中预先定义的关键字包括dead lock、jdbc leak或out of memory。
4.如权利要求1所述的weblogic中间件故障自动诊断方法,其特征在于,所述c)中获取的故障信息包括故障点的堆内存使用情况、故障点的线程使用信息、故障点的连接池使用情况、故障点的jms使用情况、故障点的wtc使用情况以及故障点的线程堆栈信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767183.XA CN104503903B (zh) | 2014-12-12 | 2014-12-12 | 一种weblogic中间件故障自动诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767183.XA CN104503903B (zh) | 2014-12-12 | 2014-12-12 | 一种weblogic中间件故障自动诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503903A CN104503903A (zh) | 2015-04-08 |
CN104503903B true CN104503903B (zh) | 2017-05-17 |
Family
ID=52945302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410767183.XA Active CN104503903B (zh) | 2014-12-12 | 2014-12-12 | 一种weblogic中间件故障自动诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503903B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104980524A (zh) * | 2015-07-10 | 2015-10-14 | 上海新炬网络信息技术有限公司 | 一种weblogic连接池失效监测方法 |
CN107783852B (zh) * | 2016-08-25 | 2021-12-21 | 平安科技(深圳)有限公司 | 一种dump文件生成方法及终端 |
CN106982141A (zh) * | 2017-04-13 | 2017-07-25 | 中国联合网络通信集团有限公司 | Weblogic实例监控方法及装置 |
CN108804276A (zh) * | 2017-04-28 | 2018-11-13 | 广东亿迅科技有限公司 | Weblogic集群域的自动巡检方法及装置 |
CN108366108B (zh) * | 2018-01-31 | 2021-03-02 | 广东亿迅科技有限公司 | 基于JMX技术的WebLogic集群用户管理方法及装置 |
CN109885419A (zh) * | 2019-02-21 | 2019-06-14 | 广东电网有限责任公司信息中心 | 一种用于中创中间件故障隔离和修复的自动管理方法 |
CN111064597A (zh) * | 2019-11-12 | 2020-04-24 | 刘璐豪 | 一种基于Pass平台的中间件节点自愈系统的自愈方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727392A (zh) * | 2009-12-29 | 2010-06-09 | 浪潮电子信息产业股份有限公司 | 一种排查操作系统和软件故障的方法 |
CN102752142A (zh) * | 2012-07-05 | 2012-10-24 | 深圳市易聆科信息技术有限公司 | 一种基于多维建模的信息系统的监控方法及监控系统 |
CN104166620A (zh) * | 2014-07-10 | 2014-11-26 | 广州中大电讯科技有限公司 | 基于数字家庭中间件的居家养老健康服务系统容错的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555240C (zh) * | 2007-01-16 | 2009-10-28 | 国际商业机器公司 | 用于诊断应用程序的方法和系统 |
-
2014
- 2014-12-12 CN CN201410767183.XA patent/CN104503903B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727392A (zh) * | 2009-12-29 | 2010-06-09 | 浪潮电子信息产业股份有限公司 | 一种排查操作系统和软件故障的方法 |
CN102752142A (zh) * | 2012-07-05 | 2012-10-24 | 深圳市易聆科信息技术有限公司 | 一种基于多维建模的信息系统的监控方法及监控系统 |
CN104166620A (zh) * | 2014-07-10 | 2014-11-26 | 广州中大电讯科技有限公司 | 基于数字家庭中间件的居家养老健康服务系统容错的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104503903A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503903B (zh) | 一种weblogic中间件故障自动诊断方法 | |
KR102268355B1 (ko) | 클라우드 배치 기반구조 검증 엔진 | |
US8234633B2 (en) | Incident simulation support environment and business objects associated with the incident | |
US20140101640A1 (en) | White-box testing systems and/or methods for use in connection with graphical user interfaces | |
US20050120273A1 (en) | Automatic root cause analysis and diagnostics engine | |
CN108769112B (zh) | 一种非侵入式rpc接口监控方法及系统 | |
US20020156664A1 (en) | Method and apparatus for service request handling | |
US20050114485A1 (en) | Using URI's to identify multiple instances with a common schema | |
CN105959802A (zh) | 智能电视故障信息收集方法及装置 | |
US7941703B2 (en) | Capturing machine state of unstable java program | |
JPH01243135A (ja) | コンピュータ・システムにおける問題解決方法 | |
US10795793B1 (en) | Method and system for simulating system failures using domain-specific language constructs | |
CN110046073A (zh) | 一种日志采集方法及装置、设备、存储介质 | |
CN111382023A (zh) | 代码故障定位方法、装置、设备及存储介质 | |
JP5425720B2 (ja) | 仮想化環境監視装置とその監視方法およびプログラム | |
JP2011197785A (ja) | ログ収集システムおよびログ収集プログラム | |
CN106790463A (zh) | Web配置文件重载过程的访问方法和系统 | |
WO2015187001A2 (en) | System and method for managing resources failure using fast cause and effect analysis in a cloud computing system | |
US7571429B2 (en) | System and method for error reporting | |
CN110048881A (zh) | 信息监控系统、信息监控方法及装置 | |
He et al. | HangFix: automatically fixing software hang bugs for production cloud systems | |
CN117493179A (zh) | 流量录制回放方法、装置、存储介质及电子设备 | |
CN116841902A (zh) | 健康状态检查方法、装置、设备及存储介质 | |
Long et al. | Enabling collaborative testing across shared software components | |
Yuan et al. | How are distributed bugs diagnosed and fixed through system logs? |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Qingpu 201707 waiqingsong road Shanghai City, No. 588 Lane 7548 Building 1 R zone 1 room 113 Patentee after: Shanghai new torch network information technology Limited by Share Ltd Address before: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B Patentee before: SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY CO., LTD. |