设为首页 收藏本站
查看: 1113|回复: 0

[经验分享] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)' has been b

[复制链接]

尚未签到

发表于 2017-2-18 11:26:13 | 显示全部楼层 |阅读模式
  1,"weblogic.kernel.Default"是从客户端提交请求后产生的线程所在的队列名。这个队列的线程数默认是15个。如果超过15个线程堵塞,则部署的应用将不能访问。同时后台报:
<2008-2-27 下午09时37分48秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '14' for queue: 'weblogic.kernel.Default' has been busy for "1,720" seconds working on the request "Http Request: /myapp/test/index.jsp", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
2,线程数(Tread Count):指派到weblogic.kernel.Default队列的线程数。如果你不需要使用超过15个线程(默认),就不必更改这个属性值。

       如果发送该请求较多,很有可能会导致weblogic的线程阻塞,严重会引起weblogic挂起现象。
可以通过以下几种方法解决:
1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。
2)增大线程数,防止线程阻塞问题。
3)优化程序,减少处理时间。

如何修改weblogic的weblogic.kernel.Default参数(最大线程数)

  weblogic.kernel.default其实是一个WebLogic的核心参数,设置的值就是WebLogic用来响应客户端请求的线程数量。也就是说,一个用户登陆应用系统进行某操作,则WebLogic将从weblogic.kernel.default中分配一个线程给该用户。默认情况下,这个参数值是40。比如对大的企业应用,同一时间登陆操作系统的用户非常多,则40个线程就显得太少了。同时,如果你的应用程序设计得不好,造成很多操作速度非常慢,因为WebLogic要等待你一个操作完成之后,才进行线程的回收处理,如果同一时间有很多线程在执行非常慢的操作,这也会引起线程数量不够的问题。
具体的表现就是在WebLogic的控制台的myserver中的Monitoring页面下的Performance页面中,Queue Length显示不是等于0,图像可能是一个曲线。Queue Length这个参数的意义就是“在等待队列里的请求数”。正常情况下,应该是0,图像是一个水平的横线。也就是没有客户端的请求会等待,都能及时的得到系统的处理。
如果确认是因为用户过多的原因需要增大weblogic.kernel.default参数的值,我们怎么修改?
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General——点击Advanced Options的Show链接——最下面的Configure Execute Queues 链接——weblogic.kernel.Default链接——Thread Count参数。的却是隐藏的比较深。修改Thread Count的值,然后重启WebLogic就可以生效了。
如何修改weblogic默认线程池大小
  weblogic 9.x使用了线程自调优技术。默认情况下,weblogic 9.x刚刚开始的时候是5个,线程数随着业务要求自动进行增加或者减少。
如果不使用9.X的线程自调优的新特性,用兼容8.1线程方式8.1的兼容参数有两个:
<self-tuning-thread-pool-size-min>和 <self-tuning-thread-pool-size-max>
  1、修改weblogic domain的config.xml文件,在对应位置加入红色标注的两行内容:
  <server>
          <name>Adminserver</name>
          <self-tuning-thread-pool-size-min>5</self-tuning-thread-pool-size-min>
          <self-tuning-thread-pool-size-max>15</self-tuning-thread-pool-size-max>
          ...
     </server>
  2、在startweblogic.cmd脚本中加入一下java启动参数:
  -Dweblogic.configuration.schemaValidationEnabled=false
  经测试32为windows操作系统上,同样硬件条件下:weblogic9支持的最大线程数约为2900个,而tomcat6支持最大线程数约为1100多。
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  官方文档指出,WebLogic 9 / WebLogic 10 的线程池是自调优的,并且在WebLogic 9的时候,通过修改config.xml可以修改默认线程池的最小值、最大值,但是很麻烦。到了WebLogic 10gR3,连修改config.xml的办法都给取消了。
  但是,可以通过在启动脚本增加如下参数,可以指定默认线程池的最小值、最大值:
  本帖隐藏的内容需要回复才可以浏览
  -Dweblogic.threadpool.MinPoolSize=100
  -Dweblogic.threadpool.MaxPoolSize=500
  经过测试,WebLogic 9.x / 10.x /10gR3 均起作用。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343825-1-1.html 上篇帖子: 在BEA WebLogic中使用Java消息服务 下篇帖子: eclipse启动weblogic控制台显示乱码问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表