大家好,又见面了,我是全栈君。
接到现场实施的反馈:如今有一系统慢,整个系统卡住了。诊断过程:
1. 检查应用日志,即weblogic日志,发现有阻塞的线程,查到代码是调用的接口
<2014-7-10 下午03时47分30秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: ‘7’ for queue: ‘default’ has been busy for “994” seconds working on the request “Http Request: /web/dwr/call/plaincall/TodoDWR.getTodoClassifyList.dwr”, which is more than the configured time (StuckThreadMaxTime) of “600” seconds.>
2. 检查数据库报告,发现负载很小,能够推断问题不是出如今数据库层面上。
3. 继续分析接口的代码,发现业务非常easy,就是调用一个webservices。喜出望外。定位到接口未加超时时间,要开发加上,然后发增量到现场。
现场增量后。还是一天阻塞一次。问题没有解决,接口的超时设置不生效?但在本地測试是能够的。
继续分析接口代码。发现接口是通过xfile实现,版本号是1.4.2,在网上找了一下对应的设置方法,有三种。都加上去。增量上去之后还是没有解决这个问题。
因为找不出来问题,仅仅好绕过xifile,把接口改写,用axis的方式调用接口。增量上去后。问题解决。整个解决过程花了二周的时间。
总结:当遇到一个问题实在是解决不了,能够考虑绕过去,用其它的方式解决。
当然,也不能一遇到问题就绕过去,度怎么把握,要靠自己,本次事件关于接口部分的调整,在网上找了很久的解决方式,同一时候也找了公司写接口最专业的人来支援诊断,这样都解决不了,仅仅能绕过去。对于开源的架构。也不能全信,对它的使用,一定要很成熟,使用很广泛才干在项目中使用,要不然。一定有懊悔的时候。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116579.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...