zoukankan      html  css  js  c++  java
  • 应用执行存储过程超时问题

    系统点击某个按钮,执行某个动作的时候,执行不成功,出现如下日志提示:

    ** BEGIN NESTED EXCEPTION **

    java.net.SocketException

    MESSAGE: Socket closed

    STACKTRACE:

    java.net.SocketException: Socket closed

    at java.net.SocketInputStream.socketRead0(Native Method)

    at java.net.SocketInputStream.read(SocketInputStream.java:152)

    at java.net.SocketInputStream.read(SocketInputStream.java:122)

    at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)

    at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)

    at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)

    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1900)

    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:483)

    at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1411)

    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1728)

    at com.mysql.jdbc.Connection.execSQL(Connection.java:2978)

    at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)

    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:933)

    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:773)

    at com.mysql.jdbc.CallableStatement.execute(CallableStatement.java:520)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)

    at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)

    at $java.sql.Statement$$EnhancerByProxool$$6d74c158.execute(<generated>)

    at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdateProcedure(SqlExecutor.java:229)

    at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteUpdate(ProcedureStatement.java:34)

    at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)

    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393)

    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)

    at org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:399)

    at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)

    at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:397)

    at com.fxtx.app.plan.CKPlanDao.planout(CKPlanDao.java:129)

    at com.fxtx.app.plan.CKPlanMgr.planout(CKPlanMgr.java:52)

    at com.fxtx.app.plan.CKPlanAction.planout(CKPlanAction.java:219)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)

    at com.fxtx.base.BaseAction.execute(BaseAction.java:111)

    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)

    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)

    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at com.fxtx.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:58)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)

    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:745)

    ** END NESTED EXCEPTION **

    Last packet sent to the server was 1 ms ago.

    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:117)

    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)

    at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)

    at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:397)

    at com.fxtx.app.plan.CKPlanDao.planout(CKPlanDao.java:129)

    at com.fxtx.app.plan.CKPlanMgr.planout(CKPlanMgr.java:52)

    at com.fxtx.app.plan.CKPlanAction.planout(CKPlanAction.java:219)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)

    at com.fxtx.base.BaseAction.execute(BaseAction.java:111)

    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)

    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)

    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at com.fxtx.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:58)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)

    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:745)

    Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:

    --- The error occurred in com/fxtx/app/sqlmap/CKPlanSqlMap.xml.

    --- The error occurred while applying a parameter map.

    --- Check the p_map_out.

    --- Check the statement (update procedure failed).

    --- Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

    分析了下

    1、应用执行,后台会执行一个存储过程,不成功

    2、直接登录服务器执行存储过程,成功

    判断是应用执行存储过程超时的问题,分析了下存储过程,确实执行时间有点久,大概50秒,要做很多次循环,执行每个循环大概要花0.1s的时间,执行时间比较短的时候都没有问题。


    解决办法:

    修改数据库参数配置文件proxool.xml里面的maximum-active-time时间,把12秒改为120秒,问题得到解决。

    clip_image001

    上网查下此参数的含义:

    proxool中有一个参数maximum-active-time 缺省为 5 分钟, 其含义是一个线程持有一个连接的最长时间,而不管这个连接是否处于 active 状态, 并且如果线程的持有时间超过这个时间的之后会自动清除掉这个连接. 但是很多时候5分钟并不够用, 所以需要在配置文件中进行设置, 其单位为毫秒(ms).


    参考:

    https://www.cnblogs.com/selfchange/p/7028777.html

  • 相关阅读:
    code#5 P2 棋子
    code#5 P1 报告
    ztz11的noip模拟赛T3:评分系统
    20181101noip模拟赛T1
    20181031noip模拟赛T2
    20181031noip模拟赛T1
    Linux进程的五个段
    进程和线程有什么区别
    shell中if条件字符串、数字比对,[[ ]]和[ ]区别
    Python实现单例模式
  • 原文地址:https://www.cnblogs.com/fuqu/p/10535550.html
Copyright © 2011-2022 走看看