CN104503903B - 一种weblogic中间件故障自动诊断方法 - Google Patents

一种weblogic中间件故障自动诊断方法 Download PDF

Info

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
Application number
CN201410767183.XA
Other languages
English (en)
Other versions
CN104503903A (zh
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.)
Shanghai new torch network information technology Limited by Share Ltd
Original Assignee
SHANGHAI XINJU NETWORK 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 SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY Co Ltd
Priority to CN201410767183.XA priority Critical patent/CN104503903B/zh
Publication of CN104503903A publication Critical patent/CN104503903A/zh
Application granted granted Critical
Publication of CN104503903B publication Critical patent/CN104503903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种weblogic中间件故障自动诊断方法,包括如下步骤:a)预先收集weblogic中间件各个版本的bug信息;b)预先定义诊断故障的关键字;c)采用Java管理扩展方法自动获取当前weblogic中间件运行的各种故障信息,并通过预先定义的关键字快速搜索定位诊断故障;d)从获取的故障信息中查找各个版本的bug信息,并给出匹配bug对应的补丁号。本发明通过预先收集weblogic中间件各个版本的bug信息,预先定义诊断故障的关键字,统一收集各种故障信息,从而能够在故障发生时快速定位,并可通过故障关键字和匹配bug对应的补丁号及时解决问题,减少人工干预,实现自动诊断功能。

Description

一种weblogic中间件故障自动诊断方法
技术领域
本发明涉及一种软件故障诊断方法,尤其涉及一种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使用情况以及故障点的线程堆栈信息。
CN201410767183.XA 2014-12-12 2014-12-12 一种weblogic中间件故障自动诊断方法 Active CN104503903B (zh)

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)

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

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555240C (zh) * 2007-01-16 2009-10-28 国际商业机器公司 用于诊断应用程序的方法和系统

Patent Citations (3)

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