绕过问题也是一种能力--记一次接口的问题

针对系统运行缓慢的问题,通过对WebLogic日志的分析,发现线程堵塞情况,并逐步排查数据库及接口代码,最终通过替换调用方式从根源上解决了问题。

       接到现场实施的反馈:现在有一系统慢,整个系统卡住了。诊断过程:

      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. 继续分析接口的代码,发现业务很简单,就是调用一个webservices。喜出望外,定位到接口未加超时时间,要开发加上,然后发增量到现场。

      现场增量后,还是一天堵塞一次,问题没有解决,接口的超时设置不生效?但在本地测试是可以的。继续分析接口代码,发现接口是通过xfile实现,版本是1.4.2,在网上找了一下相应的设置方法,有三种,都加上去,增量上去之后还是没有解决问题。

      由于找不出来问题,只好绕过xifile,把接口改写,用axis的方式调用接口,增量上去后,问题解决,整个解决过程花了二周的时间。

      总结:当遇到一个问题实在是解决不了,可以考虑绕过去,用其他的方式解决。当然,也不能一遇到问题就绕过去,度怎么把握,要靠自己,本次事件关于接口部分的调整,在网上找了很久的解决方案,同时也找了公司写接口最专业的人来支援诊断,这样都解决不了,只能绕过去。对于开源的架构,也不能全信,对它的使用,一定要非常成熟,使用非常广泛才能在项目中使用,要不然,一定有后悔的时候。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值