首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 应用服务器 >

关于weblogic线程阻塞有关问题

2012-02-23 
关于weblogic线程阻塞问题。不知道大家有没有遇到类似的问题,有没有一些解决方案和想法给我。只要有想法,就

关于weblogic线程阻塞问题。
不知道大家有没有遇到类似的问题,
有没有一些解决方案和想法给我。
只要有想法,就给分。

Java code
"ExecuteThread: '0' for queue: 'weblogic.kernel.Default'" id=9 idx=0x38 tid=17160 prio=5 alive, in native, blocked, daemon    -- Blocked trying to get lock: java/io/PrintStream@0x8230478[unlocked]    at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)    at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1630)    at jrockit/vm/Locks.lockFat(Locks.java:1731)    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1277)    at jrockit/vm/Locks.monitorEnter(Locks.java:2389)    at java/lang/Throwable.printStackTrace(Throwable.java:460)    at java/lang/Throwable.printStackTrace(Throwable.java:451)    at com/paic/pa18/svc/web/filter/PageJump.doFilter(PageJump.java:116)    at weblogic/servlet/internal/FilterChainImpl.doFilter(FilterChainImpl.java:27)    at 


[解决办法]
我也遇到了weblogic线程阻塞的问题,并发访问是产生的,并且导致cpu占用率上升。求解决方案。
[解决办法]
首先,查看程序代码,看有没有 连接未关闭,并且关闭要放在finally里面。程序代码中对应同时与数据库操作多次的要放在一个事务里面去处理。数据库连接不能放在循环里面等。
再就是 weblogic.kernel.default要修改一下,设置大一点。默认40太小了。
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线程阻塞的问题,并发访问是产生的,并且导致cpu占用率上升。求解决方案。

热点排行