Hello everybody!
I am working with Weblogic 9.2 and I am facing performance problems in my system.
I get Threads Dump regularly during 3 hours with 10 minutes of interval between each other.
After that, I found a stack that is present about 60 times in all dumps. Here it is:
"[STANDBY] ExecuteThread: '18' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.work.ExecuteThread@109dee5 WAITING
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:474)
weblogic.work.ExecuteThread.waitForRequest(ExecuteThread.java:165)
weblogic.work.ExecuteThread.run(ExecuteThread.java:186)
All of them is in WAITING/STANDBY state. The things that change between them is its number and the memory address.
For the same
thread number, I have the same memory address in all 3 hours.
So, I get another thread that is present in all thread dump, but it is in STUCK state for the 3 hours. It is a thread that making conenections in the batabase to extract a report. Here it is:
"[STUCK] ExecuteThread: '14' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE native
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
oracle.net.ns.Packet.receive(Unknown Source)
oracle.net.ns.DataPacket.receive(Unknown Source)
oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1099)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1070)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:478)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1060)
oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)
weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3243)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2003)
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1909)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1359)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Has anybody get a suggestion of what is happening in this case?
Is there a way to point that the problem is linked with the STUCK thread and the other threads in WAITING/STANDBY?
Thanks all!