我刚刚在我的weblogic服务器10.3.6“”
上发了一些随机警报在完整的线程转储中,我有(活动状态)
带有FAT LOCK的这个堆栈的264个线程:
"[ACTIVE] ExecuteThread: '100' for queue: 'weblogic.kernel.Default (self-tuning)'": non-Java thread
"[ACTIVE] ExecuteThread: '101' for queue: 'weblogic.kernel.Default (self-tuning)'": non-Java thread
"[ACTIVE] ExecuteThread: '102' for queue: 'weblogic.kernel.Default (self-tuning)'": non-Java thread
each ExecuteThread have the same thing:
"[ACTIVE] ExecuteThread: '110' for queue: 'weblogic.kernel.Default (self-tuning)'" id=842 idx=0x48 tid=28341 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xa03777f0[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
at jrockit/vm/Locks.wait(Locks.java:1973)[inlined]
at java/lang/Object.wait(Object.java:485)[inlined]
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:205)[inlined]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:233)[optimized]
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xa03777f0[fat lock]
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"Thread-1" id=11 idx=0x4c tid=16134 prio=5 alive, sleeping, native_waiting, daemon
at java/lang/Thread.sleep(J)V(Native Method)
at com/singularity/util/org/apache/log4j/helpers/FileWatchdog.run(FileWatchdog.java:104)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
"[ACTIVE] ExecuteThread: '103' for queue: 'weblogic.kernel.Default (self-tuning)'" id=850 idx=0x50 tid=28350 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0x9cf6ba30[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
at jrockit/vm/Locks.wait(Locks.java:1973)[inlined]
at java/lang/Object.wait(Object.java:485)[inlined]
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:205)[inlined]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:233)[optimized]
^-- Lock released while waiting: weblogic/work/ExecuteThread@0x9cf6ba30[fat lock]
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
其中一些(7)处于待机状态,这个完整堆栈有FAT LOCK:
"[STANDBY] ExecuteThread: '105' for queue: 'weblogic.kernel.Default (self-tuning)'" id=852 idx=0x6c tid=28352 prio=5 alive, waiting, native_blocked, daemon
-- Waiting for notification on: weblogic/work/ExecuteThread@0xa02d3520[fat lock]
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
at jrockit/vm/Locks.wait(Locks.java:1973)[inlined]
at java/lang/Object.wait(Object.java:485)[inlined]
at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:205)[inlined]
at weblogic/work/ExecuteThread.run(ExecuteThread.java:233)[optimized]
^-- Lock released while waiting: weblogic/work/ExecuteThread@0xa02d3520[fat lock]
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
一个线程处于“STUCK”状态,有这个堆栈:
"[STUCK] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'": non-Java thread
at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
at java/lang/Object.wait(J)V(Native Method)
at weblogic/rjvm/ResponseImpl.waitForData(ResponseImpl.java:90)
at weblogic/rjvm/ResponseImpl.retrieveThreadLocalContext(ResponseImpl.java:153)
at weblogic/messaging/dispatcher/DispatcherProxy.unmarshalResponse(DispatcherProxy.java:241)
at weblogic/messaging/dispatcher/DispatcherProxy.dispatchSyncTranFuture(DispatcherProxy.java:134)
at weblogic/messaging/dispatcher/DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:334)
at weblogic/messaging/dispatcher/DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:381)
at weblogic/messaging/dispatcher/DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:249)
at weblogic/jms/dispatcher/DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
at weblogic/jms/frontend/FEConsumer.<init>(FEConsumer.java:296)
at weblogic/jms/frontend/FESession$2.run(FESession.java:1076)
at weblogic/security/acl/internal/AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic/security/service/SecurityManager.runAs(SecurityManager.java:146)
at weblogic/jms/frontend/FESession.consumerCreate(FESession.java:1072)
at weblogic/jms/frontend/FESession.invoke(FESession.java:3027)
at weblogic/messaging/dispatcher/Request.wrappedFiniteStateMachine(Request.java:961)
at weblogic/messaging/dispatcher/DispatcherImpl.syncRequest(DispatcherImpl.java:185)
at weblogic/messaging/dispatcher/DispatcherImpl.dispatchSync(DispatcherImpl.java:220)
at weblogic/jms/dispatcher/DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
at weblogic/jms/client/JMSSession.consumerCreate(JMSSession.java:3017)
at weblogic/jms/client/JMSSession.setupConsumer(JMSSession.java:2775)
at weblogic/jms/client/JMSSession.createConsumer(JMSSession.java:2717)
at weblogic/jms/client/JMSSession.createDurableSubscriber(JMSSession.java:2513)
at weblogic/ejb/container/internal/JMSConnectionPoller.setUpTopicSessionAt(JMSConnectionPoller.java:1530)
at weblogic/ejb/container/internal/JMSConnectionPoller.setUpTopicSessions(JMSConnectionPoller.java:1316)
at weblogic/ejb/container/internal/JMSConnectionPoller.createJMSConnection(JMSConnectionPoller.java:2311)
at weblogic/ejb/container/internal/JMSConnectionPoller.connect(JMSConnectionPoller.java:808)
at weblogic/ejb/container/internal/MDConnectionManager.timerExpired(MDConnectionManager.java:179)
at weblogic/timers/internal/TimerImpl.run(TimerImpl.java:284)
at weblogic/work/SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550)
at weblogic/work/ExecuteThread.execute(ExecuteThread.java:263)
at weblogic/work/ExecuteThread.run(ExecuteThread.java:221)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
这一个执行线程2
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=55 idx=0xc8 waiting for java/lang/String@0x9c312a30 held by:, "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=54 idx=0xc4 tid=16428 in chain 2, , Chain 4:, "ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" id=56 idx=0xcc tid=16432 waiting for java/lang/String@0x9c312a30 held by:, "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=54 idx=0xc4 tid=16428 in chain 2, , Open lock chains, ================, Chain 1:, "[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" id=34 idx=0x80 tid=16400 waiting for weblogic/jms/client/JMSXASession@0x91a97650 held by:, "[STUCK] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" id=35 idx=0x84 tid=16401 (waiting on notification), , Chain 2:, "ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=53 idx=0xc0 tid=16426 waiting for java/lang/String@0x9c312a30 held by:, "ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'": non-Java thread
这是执行线程1
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'": non-Java thread
at jrockit/ext/epoll/EPoll.epollWait0(ILjava/nio/ByteBuffer;II)I(Native Method)
at jrockit/ext/epoll/EPoll.epollWait(EPoll.java:123)[optimized]
at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:156)
at weblogic/socket/SocketReaderRequest.run(SocketReaderRequest.java:29)
at weblogic/socket/SocketReaderRequest.execute(SocketReaderRequest.java:42)
at weblogic/kernel/ExecuteThread.execute(ExecuteThread.java:145)
at weblogic/kernel/ExecuteThread.run(ExecuteThread.java:117)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
在每个THREAD中,我看到来自jrockit / vm / Threads.waitForNotifySignal的“FLAT锁”等待信号移除锁,但我找不到源(也许是ExecuteThread 2持有的ExecuteThread 2)。 / p>
ExecuteThread 2似乎被ExecuteTread'1'“保持”,为什么?
“weblogic.socket.Muxer”似乎读取服务器上的传入请求,客户端上的传入响应是否正确?是否有可能知道他在等什么?
感谢您的帮助,我迷路了:/
此致
C
答案 0 :(得分:1)
为了更好的说明:
BEA-002936
信息:已达到最大线程约束constraintName描述:已达到最大线程约束constraintName
原因:分配给该工作管理器的线程数已达到最大线程限制中的配置值
操作:无需采取操作
BEA-002937 信息:不再达到最大线程约束constraintName
说明:不再达到最大线程约束constraintName
原因:分配给该工作管理器的线程数已降至最大线程限制中的配置值以下
操作:无需采取操作
来源:https://docs.oracle.com/cd/E23943_01/apirefs.1111/e14397/WorkManager.html