weblogic螺纹脂肪锁定weblogic.socket.muxer卡住了BEA-002936最大线程约束



我在我的WebLogic Server 10.3.6"

上只有一些随机警报

在我拥有的完整线程中(活动状态)

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)处于待机状态,带有脂肪锁的完整堆栈:

"[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] 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)

在每个线程中,我从jrockit/vm/threads.waitfornotifysignal中看到一个"平面锁",等待信号删除锁定锁定,但我找不到源(也许是由expeTeThread 1持有的executeThread 2)。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>

executeThread 2似乎是由executetRead'1'持有的,为什么?

" weblogic.socket.muxer"似乎在服务器上读取传入的请求,并且客户端上的传入响应是正确的吗?有可能知道他在等什么吗?

感谢您的帮助,我迷路了:/

问:

c

以更好地澄清:

BEA-002936

信息:达到了最大线程约束约束名称描述:达到了最大线程约束约束名

原因:分配给此工作经理的线程数已在最大线程约束

中达到了配置的值

动作:无需操作


BEA-002937 INFO :不再达到最大线程约束约束名

描述:不再达到最大线程约束名称

原因:分配给此工作经理的线程数已降至最大线程约束中的配置值

动作:无需操作

来源:https://docs.oracle.com/cd/e23943_01/apirefs.1111/e14397/workmanager.html

最新更新