开发者社区 问答 正文

Tomcat自动退出?报错

最近tomcat运行一个项目,运行一两天就自动关闭,也没有报错。

以下是网上查找别人说的原因:

1,并发用户数目过大,也会导致tomcat自动停止服务。 
2,系统本身的网络负载平衡没有做好,导致tomcat自动停止服务; 
3,程序迭代不合理也是一个原因; 
4,数据库连接未关闭,导致资源损耗过重,会引起服务停止; 
5,程序严重错误,也会引起tomcat停止服务!

想请问以下,除以上外,还有什么原因会引起tomcat自动关闭。有什么软件可以测试或者模拟异常之类?

展开
收起
爱吃鱼的程序员 2020-06-22 11:13:21 650 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    看看tomcat目录下有没有什么hs_xxxx.log之类的文件,另外检查logs下的日志文件看有什么错误信息吗?

    引用来自“红薯”的评论

    看看tomcat目录下有没有什么hs_xxxx.log之类的文件,另外检查logs下的日志文件看有什么错误信息吗?

    这种问题某倒还没遇到过。不过要看看TOmcat_home下有没有留下hs_**.log这样的文件,有说明是内存溢出。

    第二要看logs下的catalina.out的文件,查看最后的日志。

    在远程可以用jstat看看运行期内存回收。

    实在不行在tomcat的jvm参数中加上

    -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port="9004"-Dcom.sun.management.jmxremote.authenticate="false"-Dcom.sun.management.jmxremote.ssl="false"



    然后在本地用JVisualVM监控看看。


    还真没见过,楼上方法试试吧,个人感觉,内存面大些


    试试在Tomcat的JVM参数中加上  -XX:HeapDumpPath=./java_pid<pid>.hprof 的参数,下次退出前会输出内存快照。然后用专业工具分析。


    还有种可能,有别人登录上服务器把你Tomcat关了

    有人重启了服务器。

     如果是你应用日志有问题,那肯定有I记录,不会没log的,只有新手才不知道哪里找log 

    如果是Linux服务器可能是内存不足被kill了 可以查查系统日志  /var/log/messge
    2020-06-22 11:13:39
    赞同 展开评论