weblogic 报错(StuckThreadMaxTime) of "600" seconds

更新积分表:后台出现以下错误:
最近,服务器weblogic经常报异常:

 <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '496' for queue: 'weblogic.kernel.Default (self-tuning)' has beenbusy for "712" seconds working on the request "Http Request: /ELearning/AAAA.do", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.Stack trace:

该异常出现的原因是资源请求的时间超出了weblogic设定的600s,造成资源排队请求,如果类似的操作很多的话,那么会造成大面积的资源请求队列,从而引起weblogic无法正常提供服务,严重时引起weblogic崩溃。那么这种原因是如何导致的呢?

首先,我们从测试服务器上发现,出现这种情况的原因是因为该请求的时间过长,于是从该请求的数据处理过程入手进行分析,发现该请求的sql语句,在sql/plus下执行时间过长,如下:

该表大概10W数据,在sql/plus下执行时间超长,造成请求weblogic反应时间超出默认值,从而引起资源排队请求的问题,引起服务器不稳定运行。那么出现了这种问题,怎么解决呢?我们的解决方法是对该sql语句进行优化处理:

1:对INFO_SIGN,PPMC等字段建立规范表,从数据库中进行查询,尽量减少in的使用
2:对<>等操作符不使用,使用> or <等方式来代替
3:尽量减少排序order by,rownum的使用,只在关键时刻进行使用,其他时刻能够不使用的就不进行使用。

通过以上方式来减少资源请求时间,从而减少以上异常的发生,来保证服务器的正常运行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值