IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]TOMCAT异常退出分析和解决方法

    lfsf802发表于 2015-09-29 19:39:47
    love 0
    最近遇到一个很诡异的问题,远程登录服务器,本来是想查看一下Tomcat的运行情况,结果用鼠标把窗体一拖,Tomcat居然自己关上了!就好像是自己按下了Ctrl+C一样!同事的电脑都没有出现这种情况,后来换了鼠标也不行(第一个反应就是鼠标的问题)。最后关了几个正在运行的软件,居然又好了。
    经过排查,确定是“有道词典”的问题,这个软件有个“划词”的功能,就是它搞的鬼,把“划词”功能一关就好了。
    
    借着个机会整理一几种tomcat异常退出的情况和解决办法。
    
    一般情况引起tomcat异常退出的情况出现在下面几种情况:
        1.并发用户数目过大,也会导致tomcat自动停止服务。 
        2.系统本身的网络负载平衡没有做好,导致tomcat自动停止服务; 
        3.程序迭代不合理也是一个原因; 
        4.数据库连接未关闭,导致资源损耗过重,会引起服务停止; 
        5.程序严重错误,也会引起tomcat停止服务!
    
    
    通常情况下,如果冰法用户数目过大的话,可能会出现内存溢出现象,这时候需要针对tomcat的jvm内存配置进行修改,通常修改就是在catalina.bat中添加:
    set CATALINA_OPTS=-Xms128M -Xmx256M
    set JAVA_OPTS=-Xms128M -Xmx256M
    或者把%CATALINA_OPTS%和%JAVA_OPTS%代替为-Xms128M -Xmx256M 
    具体数字需要根据具体情况而定。
    
    还有一种情况就是通过优化程序代码完成内存的合理使用,这块内容需要找到程序中消耗内存的地方,减少循环之类的问题。
    
    另外一种情况就是连接未关闭的问题,这个问题也是经常出现的,这块内容需要特别注意,或者引入连接池来做此事情,但是连接池设置的大小也需要特殊情况特殊处理,如果处理不好也会出现连接数过小访问出错的问题。
    
    还有一种情况tomcat会异常退出,可以参见此博客http://ifeve.com/why-kill-2-cannot-stop-tomcat/,这里面提到的问题也是挺有意思,注意sshd关闭引起tomcat关闭问题。
    
    还有一种情况是tomcat配置负载问题导致,这里可以参照http://www.cnblogs.com/shiyangxt/archive/2009/02/26/1398902.html 博客进行配置。
    
    当然,经常使用tomcat的可能会遇到tomcat启动一闪而停的现象,这里可能是因为jdk环境变量配置问题,出现此问题可以先检查jdk环境是否配置好。
    
    tomcat异常退出问题有很多种,需要进行严格的分析,如果后面再有遇到其他种类的异常退出,在及时更新。
    


沪ICP备19023445号-2号
友情链接