Increase of Threads When a SQL Statement Execution Takes for a Long Time
(Doc ID 1912569.1)
Last updated on MARCH 14, 2024
Applies to:
Oracle WebLogic Server - Version 10.3.6 and laterInformation in this document applies to any platform.
Symptoms
Deployed into WLS server 10.3.6, an application interacts with Oracle Database server.
Randomly, a thread (ExecuteThread: '6') executes SQL statement for la long time with the the following thread stack :
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
..
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1838)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1803)
- locked (a oracle.jdbc.driver.T4CConnection) at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:294)
..
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
When the execution of this SQL statement takes a long time, there are threads which are created and blocked with the following thread stack :
"[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" - Thread t@41
java.lang.Thread.State: BLOCKED
at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:994)
- waiting to lock (a weblogic.transaction.internal.ServerSCInfo) owned by "[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'" t@139
at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:3074)
at weblogic.transaction.internal.ServerTransactionImpl.abandonNow(ServerTransactionImpl.java:3469)
at weblogic.transaction.internal.ServerTransactionImpl.access$300(ServerTransactionImpl.java:65)
at weblogic.transaction.internal.ServerTransactionImpl$3.run(ServerTransactionImpl.java:3451)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
The issue is that the number of these threads (locked on weblogic.transaction.internal.ServerSCInfo handle) is increasing continuously when the SQL Statement execution takes a long time. As a consequence, a restart of WLS server is needed.
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |