weblogic stuck线程模拟

你的名字 2022-06-13 02:10 320阅读 0赞

login.jsp

  1. <%@ page language="java" import="java.sql.Connection"%>
  2. <%@ page language="java" import="java.sql.DriverManager"%>
  3. <%@ page language="java" import="java.sql.PreparedStatement"%>
  4. <%@ page language="java" import="java.sql.ResultSet"%>
  5. <html>
  6. <body>
  7. </body>
  8. <script language="javascript">
  9. <%!
  10. public class TestUpdate {
  11. public void updateDB(String sql){
  12. Connection con = null;
  13. PreparedStatement pre = null;
  14. ResultSet result = null;
  15. try
  16. {
  17. Class.forName("oracle.jdbc.driver.OracleDriver");
  18. String url = "jdbc:oracle:thin:@10.10.11.128:1521:orcl";
  19. String user = "S_DEV";
  20. String password = "S_DEV";
  21. con = DriverManager.getConnection(url, user, password);
  22. pre = con.prepareStatement(sql);
  23. pre.execute(sql);
  24. }catch (Exception e)
  25. {
  26. e.printStackTrace();
  27. }
  28. finally
  29. {
  30. try
  31. {
  32. if (result != null)
  33. result.close();
  34. if (pre != null)
  35. pre.close();
  36. if (con != null)
  37. con.close();
  38. }
  39. catch (Exception e)
  40. {
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  45. }
  46. %>
  47. <%
  48. TestUpdate testUpdate = new TestUpdate();
  49. testUpdate.updateDB("select * from test for update ");
  50. out.println("已经开始运行..........");
  51. %>
  52. </script>
  53. </html>

先到数据库上select * from test for update,然后访问jsp, weblogic控制台会告警,后台会报错:

<2017-6-23 下午04时43分23秒 CST> <[STUCK] ExecuteThread: ‘0’ for queue: ‘weblogic.kernel.Default (self-tuning)’ has been busy for
“, which is more than the configured time (StuckThreadMaxTime) of “10” seconds in “server-failure-trigger”. Stack trace:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:152)
java.net.SocketInputStream.read(SocketInputStream.java:122)
oracle.net.ns.Packet.receive(Packet.java:300)
oracle.net.ns.DataPacket.receive(DataPacket.java:106)
oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:315)
oracle.net.ns.NetInputStream.read(NetInputStream.java:260)
oracle.net.ns.NetInputStream.read(NetInputStream.java:185)
oracle.net.ns.NetInputStream.read(NetInputStream.java:102)
oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:124)
oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:80)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1137)
oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:290)
oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884)
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289)
oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1909)
oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1871)
oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:318)
jsp_servlet.__login$TestUpdate.updateDB(__login.java:79)
jsp_servlet.__login._jspService(__login.java:130)
weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238)
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363)
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
weblogic.work.ExecuteThread.run(ExecuteThread.java:254)

发表评论

表情:
评论列表 (有 0 条评论,320人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Tomcat7中打印stuck线

    在中间件层面,一些非常慢的请求就是性能杀手,weblogic可以很容易的配置超过多少秒打印出线程来,也叫stuck的线程。长期整改这些问题对系统的稳定运行有极大的帮组。修改co

    相关 Weblogic 9线调优

    weblogic 9开始使用了线程自调优技术。通过以下方法设置,可以指定默认线程的最大最小值。   方法一:修改启动脚本参数 在启动脚本中,增加如下参数 %JAVA\_

    相关 JavaScript 模拟线

    概念 多线程 百度百科上说:多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在

    相关 Weblogic 9线调优

    weblogic 9开始使用了线程自调优技术。通过以下方法设置,可以指定默认线程的最大最小值。 方法一:修改启动脚本参数 在启动脚本中,增加如下参数 %JAVA\_HOM