最近遇到一个很诡异的问题,远程登录服务器,本来是想查看一下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异常退出问题有很多种,需要进行严格的分析,如果后面再有遇到其他种类的异常退出,在及时更新。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-24 10:17:27