java - 我如何处理 weblogic 卡住的线程?

标签 java linux database unix weblogic

我正在使用 weblogic 服务器 [不同版本都出现相同类型的错误] 卡住的线程,无论如何我可以终止卡住的线程而不为拥有它们的托管服务器重新启动,线程转储包含等待锁,有时在获取数据库连接时

此处按要求添加 StackTrace:

  ===== FULL THREAD DUMP ===============
Thu Jul  6 07:08:48 2017
Oracle JRockit(R) R28.2.7-7-155314-1.6.0_45-20130329-0641-linux-x86_64
"Main Thread" id=1 idx=0x4 tid=11192 prio=5 alive, waiting, native_blocked
    -- Waiting for notification on: weblogic/t3/srvr/T3Srvr@0x80893c88[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/t3/srvr/T3Srvr.waitForDeath(T3Srvr.java:981)
    ^-- Lock released while waiting: weblogic/t3/srvr/T3Srvr@0x80893c88[fat lock]
    at weblogic/t3/srvr/T3Srvr.run(T3Srvr.java:490)
    at weblogic/Server.main(Server.java:71)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"(Signal Handler)" id=2 idx=0x8 tid=11193 prio=5 alive, native_blocked, daemon
"(OC Main Thread)" id=3 idx=0xc tid=11194 prio=5 alive, native_waiting, daemon
"(Code Generation Thread 1)" id=4 idx=0x30 tid=11203 prio=5 alive, native_waiting, daemon
"(Code Optimization Thread 1)" id=5 idx=0x34 tid=11204 prio=5 alive, native_waiting, daemon
"(VM Periodic Task)" id=6 idx=0x38 tid=11205 prio=10 alive, native_blocked, daemon
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=25 idx=0x70 tid=11220 prio=5 alive, blocked, native_blocked, daemon
    -- Blocked trying to get lock: java/lang/String@0x8080b4e0[fat lock]
    at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
    at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)[optimized]
    at jrockit/vm/Locks.lockFat(Locks.java:1512)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
    at jrockit/vm/Locks.monitorEnter(Locks.java:2179)[optimized]
    at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153)
    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)
    -- end of trace
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=26 idx=0x74 tid=11221 prio=5 alive, blocked, native_blocked, daemon
    -- Blocked trying to get lock: java/lang/String@0x8080b4e0[fat lock]
    at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
    at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)[optimized]
    at jrockit/vm/Locks.lockFat(Locks.java:1512)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
    at jrockit/vm/Locks.monitorEnter(Locks.java:2179)[optimized]
    at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153)
    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)
    -- end of trace
"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" id=28 idx=0x7c tid=11223 prio=5 alive, blocked, native_blocked, daemon
    -- Blocked trying to get lock: java/lang/String@0x8080b4e0[fat lock]
    at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method)
    at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)[optimized]
    at jrockit/vm/Locks.lockFat(Locks.java:1512)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
    at jrockit/vm/Locks.monitorEnter(Locks.java:2179)[optimized]
    at weblogic/socket/EPollSocketMuxer.processSockets(EPollSocketMuxer.java:153)
    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)
    -- end of trace
"Thread-17" id=40 idx=0xa0 tid=11300 prio=5 alive, parked, native_blocked
    -- Parking to wait for: java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject@0x80875f10
    at jrockit/vm/Locks.park0(J)V(Native Method)
    at jrockit/vm/Locks.park(Locks.java:2230)
    at sun/misc/Unsafe.park(ZJ)V(Native Method)
    at java/util/concurrent/locks/LockSupport.park(LockSupport.java:156)
    at java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java/util/concurrent/LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at weblogic/utils/concurrent/JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
    at weblogic/store/internal/PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:672)
    at weblogic/store/internal/PersistentStoreImpl.run(PersistentStoreImpl.java:721)
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"DFW Diagnostic Dump Sampling - JavaClassHistogram" id=42 idx=0xa8 tid=11304 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: [B@0x808761a8[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at oracle/dfw/sampling/DumpSampling.run(DumpSampling.java:547)
    ^-- Lock released while waiting: [B@0x808761a8[fat lock]
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"DFW Diagnostic Dump Sampling - JVMThreadDump" id=43 idx=0xac tid=11305 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: [B@0x80876388[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at oracle/dfw/sampling/DumpSampling.run(DumpSampling.java:547)
    ^-- Lock released while waiting: [B@0x80876388[fat lock]
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"oracle.dfw.impl.incident - ADR Executor (created: Wed Jul 05 07:14:17 IDT 2017)" id=47 idx=0xbc tid=11310 prio=5 alive, parked, native_blocked, daemon
    -- Parking to wait for: java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject@0x80876598
    at jrockit/vm/Locks.park0(J)V(Native Method)
    at jrockit/vm/Locks.park(Locks.java:2230)
    at sun/misc/Unsafe.park(ZJ)V(Native Method)
    at java/util/concurrent/locks/LockSupport.park(LockSupport.java:156)
    at java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java/util/concurrent/LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java/util/concurrent/ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:957)
    at java/util/concurrent/ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:917)
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"oracle.dfw.impl.incident.ADRHelper - purge incidents" id=49 idx=0xc4 tid=11312 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: java/util/TaskQueue@0x80876680[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/util/TimerThread.mainLoop(Timer.java:509)
    ^-- Lock released while waiting: java/util/TaskQueue@0x80876680[fat lock]
    at java/util/TimerThread.run(Timer.java:462)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"oracle.dfw.incident.IncidentCreatorThread" id=50 idx=0xc8 tid=11313 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: java/util/ArrayList@0x80876740[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at oracle/dfw/impl/incident/DiagnosticsDataExtractorImpl$IncidentCreatorThread.run(DiagnosticsDataExtractorImpl.java:2144)
    ^-- Lock released while waiting: java/util/ArrayList@0x80876740[fat lock]
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"oracle.dfw.incident.FloodController" id=54 idx=0xd8 tid=11318 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: java/lang/Object@0x80876808[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at oracle/dfw/impl/incident/FloodController.run(FloodController.java:136)
    ^-- Lock released while waiting: java/lang/Object@0x80876808[fat lock]
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"Thread-33" id=62 idx=0xf8 tid=11328 prio=5 alive, parked, native_blocked
    -- Parking to wait for: java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject@0x808768c0
    at jrockit/vm/Locks.park0(J)V(Native Method)
    at jrockit/vm/Locks.park(Locks.java:2230)
    at sun/misc/Unsafe.park(ZJ)V(Native Method)
    at java/util/concurrent/locks/LockSupport.park(LockSupport.java:156)
    at java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java/util/concurrent/LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at weblogic/utils/concurrent/JDK15ConcurrentBlockingQueue.take(JDK15ConcurrentBlockingQueue.java:89)
    at weblogic/store/internal/PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:672)
    at weblogic/store/internal/PersistentStoreImpl.run(PersistentStoreImpl.java:721)
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"weblogic.cluster.MessageReceiver" id=63 idx=0xfc tid=11329 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: java/util/ArrayList@0x80874d60[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/cluster/messaging/internal/server/UnicastFragmentSocket.receive(UnicastFragmentSocket.java:105)
    ^-- Lock released while waiting: java/util/ArrayList@0x80874d60[fat lock]
    at weblogic/cluster/FragmentSocketWrapper.receive(FragmentSocketWrapper.java:98)
    at weblogic/cluster/MulticastManager.run(MulticastManager.java:466)
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'" id=64 idx=0x100 tid=11330 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x80874510[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x80874510[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"DynamicListenThread[Default]" id=66 idx=0x104 tid=11339 prio=9 alive, in native, daemon
    at java/net/PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V(Native Method)
    at java/net/PlainSocketImpl.accept(PlainSocketImpl.java:408)
    ^-- Holding lock: java/net/SocksSocketImpl@0x82aaceb8[biased lock]
    at java/net/ServerSocket.implAccept(ServerSocket.java:462)
    at java/net/ServerSocket.accept(ServerSocket.java:430)
    at weblogic/socket/WeblogicServerSocket.accept(WeblogicServerSocket.java:38)
    at weblogic/server/channels/DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:535)
    at weblogic/server/channels/DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:417)
    at weblogic/server/channels/DynamicListenThread.run(DynamicListenThread.java:173)
    at java/lang/Thread.run(Thread.java:662)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'" id=67 idx=0x108 tid=11340 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x808745f8[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x808745f8[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" id=68 idx=0x10c tid=11341 prio=1 alive, blocked, native_blocked, daemon
    -- Blocked trying to get lock: oracle/jdbc/driver/T4CConnection@0x98ba7960[thin lock]
    at jrockit/vm/Threads.sleep(I)V(Native Method)
    at jrockit/vm/Locks.waitForThinRelease(Locks.java:955)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1083)[optimized]
    at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1005)[optimized]
    at oracle/jdbc/driver/PhysicalConnection.rollback(PhysicalConnection.java:5116)[optimized]
    at oracle/jdbc/OracleConnectionWrapper.rollback(OracleConnectionWrapper.java:147)
    at weblogic/jdbc/wrapper/XAConnection.rollback(XAConnection.java:861)
    at weblogic/jdbc/wrapper/Connection.forcedCleanup(Connection.java:153)
    at weblogic/common/resourcepool/ResourcePoolImpl.timeoutInactiveResources(ResourcePoolImpl.java:1953)
    at weblogic/common/resourcepool/ResourcePoolImpl.access$1500(ResourcePoolImpl.java:41)
    at weblogic/common/resourcepool/ResourcePoolImpl$ResourcePoolMaintanenceTask.timerExpired(ResourcePoolImpl.java:2675)
    at weblogic/timers/internal/TimerImpl.run(TimerImpl.java:273)
    at weblogic/work/SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic/work/ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:178)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" id=69 idx=0x110 tid=11407 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x805517e8[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x805517e8[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'" id=70 idx=0x114 tid=11408 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x8054ff60[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x8054ff60[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'" id=71 idx=0x118 tid=11409 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x80545b08[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x80545b08[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"[STANDBY] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'" id=72 idx=0x11c tid=11410 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0x8051c030[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x8051c030[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"Thread-9057" id=9097 idx=0x5b8 tid=28822 prio=5 alive, in native, daemon
    at jrockit/net/SocketNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BIII)I(Native Method)
    at jrockit/net/SocketNativeIO.socketRead(SocketNativeIO.java:32)
    at java/net/SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(SocketInputStream.java)
    at java/net/SocketInputStream.read(SocketInputStream.java:129)
    at oracle/net/nt/MetricsEnabledInputStream.read(TcpNTAdapter.java:730)
    at oracle/net/ns/Packet.receive(Packet.java:302)
    at oracle/net/ns/DataPacket.receive(DataPacket.java:108)
    at oracle/net/ns/NetInputStream.getNextPacket(NetInputStream.java:317)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:262)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:187)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:104)
    at oracle/jdbc/driver/T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:126)[inlined]
    at oracle/jdbc/driver/T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:82)[optimized]
    at oracle/jdbc/driver/T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1178)[optimized]
    at oracle/jdbc/driver/T4CTTIfun.receive(T4CTTIfun.java:314)[optimized]
    at oracle/jdbc/driver/T4CTTIfun.doRPC(T4CTTIfun.java:205)[optimized]
    at oracle/jdbc/driver/T4C8Oall.doOALL(T4C8Oall.java:548)[optimized]
    at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)[inlined]
    at oracle/jdbc/driver/T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:947)[optimized]
    at oracle/jdbc/driver/OracleStatement.executeMaybeDescribe(OracleStatement.java:1283)[optimized]
    at oracle/jdbc/driver/OracleStatement.doExecuteWithTimeout(OracleStatement.java:1441)[optimized]
    at oracle/jdbc/driver/OracleStatement.doScrollExecuteCommon(OracleStatement.java:6629)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:13502)[inlined]
    at oracle/jdbc/driver/OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3767)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3823)[optimized]
    ^-- Holding lock: oracle/jdbc/driver/T4CConnection@0x94d824b8[thin lock]
    at oracle/jdbc/driver/OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1671)[optimized]
    at weblogic/jdbc/wrapper/PreparedStatement.executeQuery(PreparedStatement.java:135)[optimized]
    at com/test/provide/operations/GlobalOperations.getQueueHistoryResult(GlobalOperations.java:2293)[optimized]
    at com/test/provide/SwitchProvisioning.getResultMessageForGeneralCase(SwitchProvisioning.java:102)[optimized]
    at com/test/provide/SwitchProvisioning.access$1300(SwitchProvisioning.java:73)
    at com/test/provide/SwitchProvisioning$ProcessThreadClassGUI.parseProvisioningXMLGUI(SwitchProvisioning.java:9562)
    at com/test/provide/SwitchProvisioning$ProcessThreadClassGUI.run(SwitchProvisioning.java:8010)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
"Thread-7800" id=7840 idx=0x620 tid=25129 prio=5 alive, in native, daemon
    at jrockit/net/SocketNativeIO.readBytesPinned(Ljava/io/FileDescriptor;[BIII)I(Native Method)
    at jrockit/net/SocketNativeIO.socketRead(SocketNativeIO.java:32)
    at java/net/SocketInputStream.socketRead0(Ljava/io/FileDescriptor;[BIII)I(SocketInputStream.java)
    at java/net/SocketInputStream.read(SocketInputStream.java:129)
    at oracle/net/nt/MetricsEnabledInputStream.read(TcpNTAdapter.java:730)
    at oracle/net/ns/Packet.receive(Packet.java:302)
    at oracle/net/ns/DataPacket.receive(DataPacket.java:108)
    at oracle/net/ns/NetInputStream.getNextPacket(NetInputStream.java:317)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:262)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:187)[optimized]
    at oracle/net/ns/NetInputStream.read(NetInputStream.java:104)
    at oracle/jdbc/driver/T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:126)[inlined]
    at oracle/jdbc/driver/T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:82)[optimized]
    at oracle/jdbc/driver/T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1178)[optimized]
    at oracle/jdbc/driver/T4CTTIfun.receive(T4CTTIfun.java:314)[optimized]
    at oracle/jdbc/driver/T4CTTIfun.doRPC(T4CTTIfun.java:205)[optimized]
    at oracle/jdbc/driver/T4C8Oall.doOALL(T4C8Oall.java:548)[optimized]
    at oracle/jdbc/driver/T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)[inlined]
    at oracle/jdbc/driver/T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:947)[optimized]
    at oracle/jdbc/driver/OracleStatement.executeMaybeDescribe(OracleStatement.java:1283)[optimized]
    at oracle/jdbc/driver/OracleStatement.doExecuteWithTimeout(OracleStatement.java:1441)[optimized]
    at oracle/jdbc/driver/OracleStatement.doScrollExecuteCommon(OracleStatement.java:6629)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.doScrollPstmtExecuteUpdate(OraclePreparedStatement.java:13502)[inlined]
    at oracle/jdbc/driver/OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3767)[optimized]
    at oracle/jdbc/driver/OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3823)[optimized]
    ^-- Holding lock: oracle/jdbc/driver/T4CConnection@0x98ba7960[thin lock]
    at oracle/jdbc/driver/OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1671)[optimized]
    at weblogic/jdbc/wrapper/PreparedStatement.executeQuery(PreparedStatement.java:135)[optimized]
    at com/test/provide/operations/GlobalOperations.getQueueHistoryResult(GlobalOperations.java:2293)[optimized]
    at com/test/provide/SwitchProvisioning.getResultMessageForGeneralCase(SwitchProvisioning.java:102)[optimized]
    at com/test/provide/SwitchProvisioning.access$1300(SwitchProvisioning.java:73)
    at com/test/provide/SwitchProvisioning$ExecuteThreadClass.saveProvRequest(SwitchProvisioning.java:2444)
    at com/test/provide/SwitchProvisioning$ExecuteThreadClass.run(SwitchProvisioning.java:759)[optimized]
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
Blocked lock chains
===================
Chain 2:
"ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'" id=26 idx=0x74 tid=11221 waiting for java/lang/String@0x8080b4e0 held by:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=27 idx=0x78 tid=11222 in chain 1
Chain 3:
"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" id=28 idx=0x7c tid=11223 waiting for java/lang/String@0x8080b4e0 held by:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=27 idx=0x78 tid=11222 in chain 1
Open lock chains
================
Chain 1:
"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'" id=25 idx=0x70 tid=11220 waiting for java/lang/String@0x8080b4e0 held by:
"ExecuteThread: '2' for queue: 'weblogic.socket.Muxer'" id=27 idx=0x78 tid=11222 (active)
Chain 4:
"[STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" id=68 idx=0x10c tid=11341 waiting for oracle/jdbc/driver/T4CConnection@0x98ba7960 held by:
"Thread-7800" id=7840 idx=0x620 tid=25129 (active)
===== END OF THREAD DUMP ===============

问候,

最佳答案

您有 2 个线程在 JDBC 套接字读取调用上阻塞。我的建议是为这些连接配置读取超时。 Oracle JDBC 瘦驱动程序有一个名为“oracle.jdbc.ReadTimeout”的属性,可以将其设置为您愿意等待的毫秒数。默认情况下没有超时,系统级 tcp 套接字读取超时将启动。您可以通过将值设置为“5000”来尝试 5 秒。

关于java - 我如何处理 weblogic 卡住的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44918458/

相关文章:

java - 如何正确设置自定义事件

java - Firebase 查询逻辑在 Android 中不起作用

linux - 是否有任何应用程序/编辑器可以跟踪文件中发生的更改并显示它们?

html - 使用 Linux 编写的网页控制机械臂

php - $mysqli-insert_id 没有正确递增

android - 我可以构建一个使用 Firebase 身份验证但使用自定义数据库(例如 MySQL)的 Android 应用程序吗

java - java中检查括号是否正确的问题

java - Java JNA调用的dll中分配内存错误

linux - ubuntu下如何访问隐藏目录

database - Entity Framework 枚举仅作为 POCO