linux下tomcat运行一段时间后 异常停止

停止时会打印如下日志:

30-Jul-2018 13:23:56.786 INFO [Thread-8] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-10001"]
30-Jul-2018 13:23:56.839 INFO [Thread-8] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-9009"]
30-Jul-2018 13:23:56.890 INFO [Thread-8] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
2018-07-30 13:23:56,894 [localhost-startStop-2] INFO [org.springframework.web.context.support.XmlWebApplicationContext] - Closing WebApplicationContext for namespace 'spring-servlet': startup date [Mon Jul 30 12:29:02 CST 2018]; parent: Root WebApplicationContext
2018-07-30 13:23:56,898 [localhost-startStop-2] INFO [org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler] - Shutting down ExecutorService 'qbScheduler'
2018-07-30 13:23:56,918 [localhost-startStop-2] INFO [org.springframework.web.context.support.XmlWebApplicationContext] - Closing Root WebApplicationContext: startup date [Mon Jul 30 12:28:53 CST 2018]; root of context hierarchy
2018-07-30 13:23:56,925 [localhost-startStop-2] INFO [com.alibaba.druid.pool.DruidDataSource] - {dataSource-1} closed
30-Jul-2018 13:23:56.930 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [hours] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
30-Jul-2018 13:23:56.931 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [hours] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
30-Jul-2018 13:23:56.939 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [hours] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:502)
java.util.TimerThread.mainLoop(Timer.java:526)
java.util.TimerThread.run(Timer.java:505)
30-Jul-2018 13:23:56.940 SEVERE [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [hours] created a ThreadLocal with key of type java.lang.ThreadLocal and a value of type com.alibaba.druid.wall.spi.WallVisitorUtils.WallTopStatementContext but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

图片说明

10个回答

我遇到这个问题后 自己的定时任务的pool-size设置为10 修改为2后无此问题 本问题结贴

系统是centos 7.2
tomcat是8.5版本
jdk是1.8

ssm + druid +mysql

springmvc 4.3.7.RELEASE
mybatis 3.4.2
druid 1.0.31
mysql 5.7

看报的异常信息是应用程序注册了JDBC驱动,但当程序停止时无法注销这个驱动,tomcat为了防止内存溢出,就给强制注销了。
在tomcat的server.xml文件中把

注释了就行了

虽然不会宕机,但是要从还没从根本上解决问题。

估计是定时任务的数据库连接池泄漏吧

Context是不是配置了reloadable="true", 感觉可能是内存泄漏导致的

druid.driverClassName=com.mysql.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/aliyoyo?useUnicode=true&characterEncoding=utf8&useSSL=false
druid.username=root
druid.password=123
druid.initialSize=10
druid.minIdle=6
druid.maxActive=50
druid.maxWait=60000
druid.timeBetweenEvictionRunsMillis=60000
druid.minEvictableIdleTimeMillis=300000
druid.validationQuery=SELECT 'x'
druid.testWhileIdle=true
druid.testOnBorrow=false
druid.testOnReturn=false
druid.poolPreparedStatements=false
druid.maxPoolPreparedStatementPerConnectionSize=20
druid.filters=wall,stat

qq_36213262
liar2331 数据库的连接配置
大约一年之前 回复

业务服务使用的MySQL Connector在做数据库操作比如开启事务时,需要先做一件事情–获取数据库连接,见com.mysql.jdbc.ConnectionImpl,代码如下:,这个timer是MySQL底层的超时控制机制。为什么会有这么多的cancel timer呢?因为在业务线程里,数据库事务开启后迟迟没有flush。业务线程需要执行:开启事务->本地更新持久化对象->业务逻辑->持久化到数据库。开启事务时即获取了数据库连接,启用了CancelTimer,但因为卡业务逻辑Container这个环节,导致一直无法提交到数据库,Timer也一直不能结束。默认的spring事务是不开启超时的,

因为大量的timer线程无法释放,导致内存内存溢出,This is very likely to create a memory leak. Stack trace of thread,tomcat不挂才怪呢

qq_36213262
liar2331 我在spring的切面事务中配置配置了事务超时时间 但是依然会出现这个问题
大约一年之前 回复

我以前也碰到过这样的问题,在网上搜了一大推,搞了一天也没有解决,最后发现数据库有一条数据是 “url=“,删除这条数据就好了。
导致的原因是因为机房突然停电,再启动起来以后数据库莫名其妙的多了这条数据

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
tomcat安装步骤以及启动一段时间自动停止
一、安装JDK的步骤: 1.安装tomcat要先安装JDK  如图: 2、安装JDK 向导进行相关参数设置(根据自己的需要选择安装路径)。如图: 3、正在安装程序的相关功能,如图: 4、选择安装的路径,可以自定义,也可以默认路径。如图: 5、成功安装之后,进行测试是否真的成功安装,点击【开始】----【运行】----输入 CMD,在命令提示符里面输
【转载】Springboot运行一段时间停止运行
容器自动停止的坑有几种可能性,如果能够正常运行几天突然挂掉的话比较倾向是第3种情况。  1、外部Tomcat和Spring boot内嵌的Tomcat有冲突,具体解决办法可以看这篇文章: https://my.oschina.net/mechanic/blog/892936  2、MySQL的Bug导致,可以看这篇文章: https://my.oschina.net/mechanic/blog/8...
记录ScheduledExecutorService使用中不工作情况
由于本博客存在一个自己的IP统计功能,使用了淘宝API查询IP的归属地,由于淘宝API查询IP归属地存在访问速度限制问题,导致本博客在插入用户记录的时候查询归属地特别的慢,所有考虑使用多线程去处理,但是写了代码以后才发现我的阿里云服务器是单核的,多线程好像没什么卵用,好吧,又想了一想,考虑使用一个定时器在晚上某个时候执行。接下来问题就出来了。。。
C++ 程序稳定运行一段时间后异常中止,为什么?vc6 运行库的bug!!!
最近发现Visual C++ 6.0有一个有趣的,能让programmer发疯的bug。Debug版本编译出来的程序可能最终会异常中止,也许是报告程序停在断点xxxxxxx。更确切地说是用debug 版本的运行时库编译的程序。 由于项目需要写了一个求最短路径的引擎。 运行稳定(内存,CPU,Handle count 保持未定),但是一段时间后,进程突然退出(crash?)。确切地说是计算了20
tomcat 启动一段时间后 出问题。 无错误日志,页面卡住
找了半天,后面发现是某个请求导致的。 在dao层加了@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true) 而dao层没有事务,service层有事务。 PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 观察发现 每
tomcat使用一段时间后不响应
今天在做测试的时候发现这样的问题。再开启tomcat后使用一会之后再请求时页面一直卡住没有输出,重新请求也时一样的情况。没办法,重启服务器之后正常。 所以我开始怀疑是数据源的问题。 1.连接池太小,调大之后依然出现这样的问题 2.c3p0的bug。因为hibernate也使用的c3p0,可能性不大。 在各种纠结之后发现其实是有一个insert操作之后没有释放connection,因此一段时
遇到问题-----Springboot运行一段时间停止运行
遇到情况 报错如下: 2018-06-05 09:43:51.541 INFO 14567 --- [ Thread-3] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplica...
Tomcat启动一段时间后:报错+自动关闭
如果:环境变量配置好了+端口没有被占用+防火墙关闭 org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8005]:  java.net.SocketException: Unrecognized Windows Sockets error: 10106: create     ...
我对tomcat等服务器的长时间运行后出现死机报内存溢出错误的一点看法
 在第一家公司我就碰到过这个问题。但是我们的解决方案是定时把tomcat服务器重新启动,在tomcat的配置里面内存是可以调节的,我们调节过,但是无效。这是个很蠢的办法,但是很有效果。我对这个问题当时的看法是程序的问题。当时我呆的是家小公司。网站的代码基本我都看过,当时不知道问题的所在。由于公司原来有原有的程序,我去又是新人,所以没敢动。一年后,我去中国研究生人才网面试。碰到主
linux下内存不足导致tomcat自动关闭原因分析
前提本地测试没毛病生产调用一个吃内存的方法后,tomcat崩溃catalina日志文件没有任何日志信息原因分析打开/var/log/messages文件 这个为linux系统日志文件我这里为Dec 7 21:02:45 iZrj97s23bov6rewm9af7aZ kernel: Out of memory: Kill process 22692 (java) score 230 or sac...
Spring定时任务无故停止又不报错
一开始是使用Spring自带的定时器来配置定时任务的,简单快捷,配置如下:<bean id="refreshCache" class="com.gionee.baserom.search.job.RefreshCache" /> <task:scheduled-tasks> <task:scheduled ref="refreshCache" method="execute" cron="0
SSH项目运行一段时间后无响应
之前做SSH项目时,在Tomcat上运行了一段时间后,就会崩溃,要重启Tomcat才能继续运行,在经过几番波折在网上查找解决方法,直到找到这位哥们的博客,才解决了! 希望能够帮到你    http://blog.csdn.net/java_zys/article/details/52090956
JBOSS5.1运行一段时间后挂掉解决思路
错误: ./run.sh: line 307: 28075 段错误 "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -classpath "$JBOSS_CLASSPATH" org.jboss.Main "$@" 日志打到这行就停止服务了,此行以上日志均正常,javax.servlet.ServletExcep
Linux系统部署的tomcat服务运行一段时间后访问慢或者无法访问的问题
1、查看tomcat服务应用日志路径下*/logs/catalina.out的日志输出tail -100 calalina.out看到如下报错:2018/04/06-19:24:16 &amp;gt;&amp;gt; ERROR &amp;gt;&amp;gt; catalina-exec-3981 &amp;gt;&amp;gt; org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.d...
tomcat内存不足,一段时间后不响应了
tomcat出现内存不足,内存泄露,内存溢出问题: tomcat在使用一段时间后,内存不足,然后便不响应了。 解决办法: 在tomcat的bin的catalina.bat里的 rem ----- Execute The Requested Command ---------------- 后面添加:rem add by mysqlf set JAVA_OPTS = -server -Xms
关于ScheduledExecutorService执行一段时间之后就不执行的问题
问题背景最近写了个程序,程序中使用到了ScheduledExecutorService的scheduleAtFixedRate方法,用于定时执行任务,但是发现程序运行一段时间之后定时任务不执行了,查看日志和perfcounter都没有看到任何异常,比较郁闷。最后看了一下JDK的源码,在源码的Java doc中的发现了如下一句话: If any execution of the task enco
【解决】网站运行一段时间后就无法访问,重启Tomcat才能恢复
【背景】重新部署了网站,运行环境是Linux(centOS6.5)+Tomcat7+mysql5,作了相关安全配置和系统优化工作; 【问题】运行几天后,出现了网站无法访问的现象,具体是进入网站首页时页面呈现空白状态,网站ping值也很不稳定; 查看tomcat访问日志,发现有同一IP在同一秒有超过10个的访问记录,且这种IP来源有不少; 【解决办法】试了很多办法,问题依然存在,临时解决办法是
tomcat运行一段时间挂掉
在catalina.bat第一行加入 set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m
关于tomcat启动后马上又自动关闭的问题
dos--cmd--d:--cd tomcat/bin--startup.bat,回车之后出现这样的提示:         Neither the JAVA_HOME nor the JRE_HOME environment variable is defined          At least one of these environment variable is needed to
Tomcat 进程自动退出问题
最近在项目里遇到这样一个问题:应用部署在线下服务器上,线下服务器,相对来说配置低一些,同时可能和其它的服务部署在一起。后来遇到一个比较怪异的问题:应用跑一段时间,Tomcat进程就挂掉了。而且这个没有什么规律,不是在特定操作执行时,或者特定时间出现。同时没有任何的日志。本来以为是其它的服务的人把我们的不小心kill掉了,但kill的有点太频繁了,同时和QA同学了解到,在线下服务器上的其他服务,目前都
linux下用脚本监测tomcat停止并且自动启动
最近发现服务器上的tomcat有时候不知道为什么就
tomcat服务器过一段时间就连接不上了
最近在做一个项目的过程中
关于java-web项目发布时,tomcat意外退出的总结
最近在使用linux下tomcat运行javaweb项目时,出现tomcat莫名关闭的问题,经过观察,感觉tomcat是在某种条件下自行关闭,并不是程序崩溃、内存溢出等问题。 经观察tomcat的关闭与远程发布终端的关闭的时间非常吻合,猜测可能和linux远程终端有关。 后来在网上看到这篇文章,印证了上述猜测。作者对问题的发生进行了详细的观察,找到问题发生的原因并给出了解决方案。文章较长,大家
服务器的mysql老是运行一段时间,自动停止
 一直困扰我快半年的问题终于得到解决, 服务器的mysql老是运行一段时间,自动停止了,必须手动启动. !  我找偏网上所有的方法,但没有一个能解决,什么修改配置文件啊.定时启动.都没效果. 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验!   这个方法是我在无意中发现的, 经测试是可行的. 下面拿出来和大家分享. 版权申明:本站文
【生产环境】Tomcat运行一段时间后访问变慢分析历程
环境运行一天或者几天,网站访问就很卡,手机端app访问页面出现白屏。Tomcat运行一段时间后访问变慢,但是cpu,内存都正常。日志也是发现不了啥.... 问题的原先分析 1.环境配置(cpu,内存,使用工具:nmon工具、visualvm工具、jprofiler工具全部用上监控中) 2.修改info日志,启用error级别日志(待筛选排查) 3.查看数据库配置连接池(正常) 4.代码问...
tomcat启动后马上又自动关闭的问题
带着这两个问题Google,得到了一条有用的消息:JAVA_HOME 是特殊的变量.大多数情况是不需要的,但是如果你装一些服务器软件或者开发工具,比如tomcat或者ant等等,就需要了。 我配置了一下JAVA_HOME的环境变量,结果再运行startup.bat!           在此附上jdk的环境变量配置方法:         变量名JAVA_HOME 赋值“安装
本地运行没问题的项目在Tomcat持续运行一段时间后报错的部分解决办法
遇到的这些问题均为项目在本地运行很正常,发布在服务器上后出现的各种报错。报错信息:严重[ajp-nio-8009-exec-1] org.apache.coyote.ajp.AjpMessHeader Invalid received signature [18245]信息[http-nio-8080-exec-6] org.apache.coyote.tp11Processor.service ...
Tomcat使用java+mysql连接池一定时间后不响应问题
平常用tomcat写东西时,因为都不算是企业级的,数据量很小,测试什么的也没有高并发请求和大量请求的测试。而在tomcat一直运行时,一定时间后遇到一个问题,程序运行到连接池获取链接的DataSource.getConnection();时程序便不继续执行了,设置断点,下一个断点怎么也执行不到,连函数return都执行不了。而且tomcat也不报错,没有记录,没法继续debug。 分析原因:
长时间运行的spark-streaming程序自动退出的问题
spark-streaming程序以yarn-client的方式运行了一段时间后,就退出了,但driver还在,yarn日志如下: 15/09/19 14:32:34 ERROR util.Utils: Uncaught exception in thread Thread-1 org.apache.hadoop.security.token.SecretManager$InvalidToke
Timer运行一段时间后停止
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed); private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { timer1.Enabled = false; ...
TOMCAT运行一段时间后网页无响应或连不上,TOMCAT无错误日志
解决方法:修改 tomcat 的 java options 参数 1)增加java options参数 -Xmn384m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseParNewGC 2)修改Tomcat Properites中 Java 的 Initial
关于ScheduledExecutorService执行一段时间之后就不执行的问
最近写了个程序,程序中使用到了ScheduledExecutorService的scheduleAtFixedRate方法,用于定时执行任务,但是发现程序运行一段时间之后定时任务不执行了,查看日志和perfcounter都没有看到任何异常,比较郁闷。最后看了一下JDK的源码,在源码的Java doc中的发现了如下一句话: If any execution of the task enco
阿里云的小内存服务器,mysql总是运行一段时间后自动停止
由于刚换了阿里云的小内存服务器,nginx+php+mysql总是运行一段时间后自动停止。 先附上mysql的错误信息: 123456789101112131415140118 14:17:30 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is d
apapche在windows2008服务器运行一段时间后服务关闭
错误如上图所示,在windows下安装的是xampp 3.2.1的版本;apache2.4.12,php 5.6.8版本;但是在运行一段时间后,apache服务就终止了,没有找到解决方法,提示的错误是加载php5apache2_4.dll的错误; 参考的文章:http://jingyan.baidu.com/article/72ee561a46a848e16038df7b.html ;据
解决Tomcat自己停止的问题
Tomcat修改内存配置的方法,解决Tomcat自己停止的问题。
TOMCAT异常退出分析和解决方法
最近遇到一个很诡异的问题,远程登录服务器,本来是想查看一下Tomcat的运行情况,结果用鼠标把窗体一拖,Tomcat居然自己关上了!就好像是自己按下了Ctrl+C一样!同事的电脑都没有出现这种情况,后来换了鼠标也不行(第一个反应就是鼠标的问题)。最后关了几个正在运行的软件,居然又好了。 经过排查,确定是“有道词典”的问题,这个软件有个“划词”的功能,就是它搞的鬼,把“划词”功能一关就好了。借着个机会
Tomcat stop时c3p0连接池线程无法关闭警告
问题: 数据源采用c3p0数据库连接池。停止tomcat服务时,发出警告: “严重: The web application [/XXX] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] but has failed to stop
eclipse异常关闭,如何关闭tomcat
一般情况下找到tomcat的home,双击bin文件夹下的shutdown.bat。但是,我这次情况比较特殊,我的eclipse下的server,修改了server.xml,所以现在端口不是8080。于是,我去寻找8081端口谁占用,发现找不到,最后百度了一下:在任务管理器里面关闭,看到javaw.exe就关闭,然后就可以了。哎,还是很简单的嘛。
设定bash脚本运行一段时间后终止
possibly_hanging_job & { sleep ${TIMEOUT}; eval 'kill -9 $!' &> /dev/null; } 学习一下
SpringBoot项目运行一段时间后自动关闭的坑
    最近自己写的小项目发布到linux上总是运行一段时间后关闭,查看日志:Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@707194ba: startup date [Tue Jun 19 16:39:22 CST 2018]; ro...
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池