项目

一般

简介

高并发下应用连接数到一定程度系统自动断开

由 huang junrui 在 超过 2 年 之前添加

问题类型:应用逻辑问题

造成原因:高并发下应用的执行获取获取数据未通过线程池等异步方式获取数据,通过单一线程执行,某些线程时间过久,超过默认的15分钟

版本号:V10企业版 202110281044

分析过程:

应用爆出以下异常:

java.lang.Thread,interrupt java.lang.Thread.interrupt(Thread.java) org.glassfish.grizzly.threadpool.AbstractThreadPool$4.doWork(AbstractThreadPool.java:139) org.glassfish.grizzly.threadpool.AbstractThreadPool$4.doWork(AbstractThreadPool.java:135) org.glassfish.grizzly.utils.DelayedExecutor$DelayedRunnable.run(DelayedExecutor.java:135) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:748) java.lang.Thread,interrupt java.lang.Thread.interrupt(Thread.java) com.apusic.aas.logging.ApusicLogManager$PushThread.enqueue(ApusicLogManager.java:102) com.apusic.aas.logging.ApusicLogManager.publish(ApusicLogManager.java:43) com.apusic.aas.logging.ApusicLogManager$LazyLogger.log(ApusicLogManager.java:183) java.util.logging.Logger.doLog(Logger.java:765) java.util.logging.Logger.logp(Logger.java:931) com.sun.enterprise.web.logger.IASLogger.write(IASLogger.java:103) com.sun.enterprise.web.logger.LoggerBase.write(LoggerBase.java:206) com.sun.enterprise.web.logger.LoggerBase.log(LoggerBase.java:180) com.sun.enterprise.web.logger.IASLogger.log(IASLogger.java:33) org.apache.catalina.core.StandardHostValve.log(StandardHostValve.java:489) org.apache.catalina.core.StandardHostValve.dispatchToErrorPage(StandardHostValve.java:643) org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:320) org.apache.catalina.core.StandardHostValve.postInvoke(StandardHostValve.java:174) org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:339) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:202) com.apusic.enterprise.v10.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:439) com.apusic.enterprise.v10.services.impl.ContainerMapper.service(ContainerMapper.java:144) org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:195) org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:162) org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218) org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95) org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:261) org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178) org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:110) org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:89) org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53) org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:549) org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89) org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94) org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33) org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114) org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569) org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549) java.lang.Thread.run(Thread.java:748)

解决方案:将请求超时连接时间调长,并重启V10

界面截图:

日志截图:

解决操作: