【发布时间】:2013-11-27 10:00:25
【问题描述】:
在 Weblogic 12c / Solaris 10 生产系统上,处理请求的时间约为 5 秒。应用本身部署在Weblogic上耗时不到200ms,之后在weblogic内部方法DynaQueue.getW中执行线程被阻塞5秒。
当问题发生时,服务器上没有负载。
您知道什么会导致这种烦人的行为吗?知道如何进一步调查吗?
这是挂起的执行线程的堆栈跟踪:
“[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'”守护进程 > prio=3 tid=0x0000000107280000 nid=0x27 in Object.wait() [0xffffffff66cfe000] java.lang.Thread.State:TIMED_WAITING(在对象监视器上) 在 java.lang.Object.wait(本机方法) - 等待 (一个 weblogic.socket.utils.DynaQueue) 在 weblogic.socket.utils.DynaQueue.getW(DynaQueue.java:237) - 锁定 (一个 weblogic.socket.utils.DynaQueue) 在 weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:336) 在 weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29) 在 weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) 在 weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
【问题讨论】: