java网站,tomcat运行一段时间后会自动停止

kuangerren 2017-11-25 10:23:50
加精
java+oracle开发一个网站,tomcat服务运行一段时间后总是出现自动停止现象,一直找不到原因。今天查看日志发现以下内容,估计与tomcat服务停止有点关系,但又看不太懂,哪位高手帮忙分析一下,不胜感激:



25-Nov-2017 00:09:41.848 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]
25-Nov-2017 00:09:41.848 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
25-Nov-2017 00:09:41.848 信息 [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]
25-Nov-2017 00:09:41.848 信息 [localhost-startStop-1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Closing WebApplicationContext for namespace 'springmvc-servlet': startup date [Sat Nov 25 00:09:34 CST 2017]; parent: Root WebApplicationContext
25-Nov-2017 00:09:41.864 信息 [localhost-startStop-1] org.springframework.web.context.support.XmlWebApplicationContext.doClose Closing Root WebApplicationContext: startup date [Sat Nov 25 00:09:22 CST 2017]; root of context hierarchy
25-Nov-2017 00:09:41.926 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] 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.
25-Nov-2017 00:09:41.926 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [ROOT] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
25-Nov-2017 00:09:41.926 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [AsyncAppender-Worker-Thread-5] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403)
ch.qos.logback.core.AsyncAppenderBase$Worker.run(AsyncAppenderBase.java:225)
25-Nov-2017 00:09:41.926 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [OracleTimeoutPollingThread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.lang.Thread.sleep(Native Method)
oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:150)
25-Nov-2017 00:09:41.926 警告 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] appears to have started a thread named [pool-1-thread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.net.www.protocol.http.Handler.openConnection(Handler.java:62)
sun.net.www.protocol.http.Handler.openConnection(Handler.java:57)
java.net.URL.openConnection(URL.java:979)
org.jsoup.helper.HttpConnection$Response.createConnection(HttpConnection.java:777)
org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:649)
org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:629)
org.jsoup.helper.HttpConnection.execute(HttpConnection.java:261)
org.jsoup.helper.HttpConnection.get(HttpConnection.java:250)
cn.gov.hnsf.gateway.schedule.TaskSchedule.getSwtjData(TaskSchedule.java:129)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
25-Nov-2017 00:09:41.926 严重 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@68056c7d]) and a value of type [java.lang.Class] (value [class oracle.sql.AnyDataFactory]) 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.
25-Nov-2017 00:09:41.926 严重 [localhost-startStop-1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [ROOT] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@ca987fd]) and a value of type [java.lang.Class] (value [class oracle.sql.TypeDescriptorFactory]) 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.
25-Nov-2017 00:09:41.942 信息 [pool-1-thread-1] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illegal access: this web application instance has been stopped already. Could not load [javax.net.ssl.HttpsURLConnection]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [javax.net.ssl.HttpsURLConnection]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1293)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1158)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at org.jsoup.helper.HttpConnection$Response.createConnection(HttpConnection.java:786)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:649)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:629)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:261)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:250)
at cn.gov.hnsf.gateway.schedule.TaskSchedule.getSwtjData(TaskSchedule.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

25-Nov-2017 00:09:41.942 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"]
25-Nov-2017 00:09:41.942 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
25-Nov-2017 00:09:41.942 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"]
25-Nov-2017 00:09:41.942 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
...全文
16268 96 打赏 收藏 转发到动态 举报
写回复
用AI写文章
96 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc1aymore 2020-09-27
  • 打赏
  • 举报
回复
你看下tomcat配置完整行
cc1aymore 2020-09-27
  • 打赏
  • 举报
回复
导致被删除的
cc1aymore 2020-09-27
  • 打赏
  • 举报
回复
估计是tomcat的配置文件卤制了信息
weixin_44036845 2019-10-10
  • 打赏
  • 举报
回复
看看你的tomcat配置的内存是多少?并不是你机器内存还剩很多就断定不是内存问题,比如你tomcat配的4G内存,就算你机器有128G内存,程序也只会用那4G内存。启动后观察下cpu,也有可能是线程耗尽,比如调用第三方组件卡住了,线程一致在等待,排除了这些,主要看内存情况,把GC信息打印出来看看,如果是内存配置的不够,就加大点。
苦瓜老鬼 2018-07-06
  • 打赏
  • 举报
回复
类加载器内存泄露,你应该看看代码
幽饮烛 2018-03-08
  • 打赏
  • 举报
回复
给的日志都是关闭之后在清理内存出错的日志,没什么用。 看样子还是正常的关闭才会出现的日志,应该是别的原因调用了服务关闭指令。 检查一下是不是系统配置休眠时间。
ArayChou 2018-03-08
  • 打赏
  • 举报
回复
从贴出来的日志看,tomcat是被"正常"关闭的 25-Nov-2017 00:09:41.848 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 25-Nov-2017 00:09:41.848 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"] 25-Nov-2017 00:09:41.848 信息 [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 是不是有啥定时任务自动关闭/重启tomcat? 请忽略内存泄露的警告, 那不是tomcat关闭的原因. 你的tomcat进程占用内存很少,相对于你的系统内存来说.
zhangchao19890805 2018-03-08
  • 打赏
  • 举报
回复
建议楼主先找找哪个进程占用的内存越来越大。
WejanLin 2018-01-11
  • 打赏
  • 举报
回复
我大致的看了下,两个主要的进程并没有明显的内存变化,oracle和tomcat内存占用没有明显增长。如果是我在处理这个事情,我会先检查是哪个程序在无限占用内存且不释放。其实也不用怎么检查,重启下tomcat的服务看看内存有没有下去。还有,程序出现死锁的时候,应该也会有这种内存被无限占用且无释放的问题;建议看一下程序。最后一点,觉得概率也不大,会不会是java垃圾回收机制的问题,在某个点上它没有回收?这个也仅仅是猜测。希望能给楼主一点思路。
那年花 2018-01-10
  • 打赏
  • 举报
回复
看一看你的会话关闭是不是有问题 之前我们有个新人搞就是不关闭会话 导致不断创建会话情况下内容爆炸
Mr.Cyu 2018-01-05
  • 打赏
  • 举报
回复
我也好奇这个问题 要怎样解决
zhangmin1992132 2018-01-05
  • 打赏
  • 举报
回复
Top和stack解决cpu飙高的线上问题定位,参考如下 ps -ef | grep yqt-accounting yqt-accounting为项目运行名称,找到pid 为26030 top -Hp pid 其中 shift+p 按cpu排序,shift+m 按内存排序 找到cpu飙高的pid,假设为 30506 printf ‘%x\n’ 30506 输出他的十六进制pid 打印堆栈信息,在对应代码定位问题 jstack 30346 | grep -A 20 768a 有疑问可以私信回复
俞大仙_♂ 2018-01-04
  • 打赏
  • 举报
回复
监控一下数据库的运行状态看看
天空win 2018-01-03
  • 打赏
  • 举报
回复
这种情况内存溢出肯定代码问题,得检查代码,看你异常里有涉及到TaskSchedule的129行,你仔细检查检查,改行代码是否有问题: cn.gov.hnsf.gateway.schedule.TaskSchedule.getSwtjData(TaskSchedule.java:129)
Ice_Wine 2018-01-03
  • 打赏
  • 举报
回复
不明,帮顶。
takeGo 2018-01-02
  • 打赏
  • 举报
回复
看代码哪块是不是连接之类的没关闭
Yort2016 2017-12-28
  • 打赏
  • 举报
回复
帮顶,想看看最后到底是怎么解决的
zhouyusunquan 2017-12-27
  • 打赏
  • 举报
回复
这个错跟我的类似,不过是在reload的时候报错,热部署时候,你是否是热部署,可以去看我的帖子,我那里也有这个问题
asd65285 2017-12-26
  • 打赏
  • 举报
回复
JCONSOLE查看堆栈信息吧
qq_41542657 2017-12-26
  • 打赏
  • 举报
回复
加载更多回复(76)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧