项目维护中的总结之tomcat死掉的原因

 *****生产管理项目( JSP+ Javabean)SQLServer2000+Tomcat4.1.*
1、实施中tomcat(4.1.*)总是莫名的当机,寻找原因:查看记录连接池已用连接的log,发现已用连接数稳步上升,直至用完,连接耗尽时间和tomcat死翘翘的时间相近(?没有实际检测,留下祸根),于是大批量修改代码,将可能没将连接释放的疑似代码全部修正(偶的code又好看了一点)。
       在“浪费”了大量的人力和精力及时光后,高兴得发布出去(当时感觉有缕阳光照在偶得身上,时间中午12点左右,没有测试,失败)!!!
       下午2点以后,反馈信息是每隔10分钟tomcat就要翘一次,:((欲哭无泪)。想起没有测试的疏忽,于是xdm赶紧做了一个简单的压力测试(够傻),发现比客户处还严重!发现两点可疑:tomcat控制台有时会出现输出不及时,结果 服务器就不响应客户请求; 内存使用量增长异常。
       同事提醒是不是我们的日志一直用的是一个文件。取得客户处日志,发现已有188M多,无法浏览,检查代码后发现,对日志的处理是打开文件流后一直不关闭。哎,取消了我们自己的日志程序;由此联想起有人说当异常过多的在控制台显示时也会让tomcat挂了(有这么一说吗?我怎么不知道,不明白:(),于是更改了一下log4j的配置,不让其输出到控制台,修改完毕后测试中感觉稍稍稳定,又发布。
      再次受打击,Server仍然会嗝儿屁,又被人投诉页面响应时间太长。没有办法,最后在网上发现很多人都说microsoft的 JDBC 驱动不好,一直没体会,而我们用的就是它,疾病乱投医吧,先下了一个新版(2.2 2004)的驱动,试一试,速度不但提高了,系统也更稳定,总算看到一线生机,最后say biby to microsoft jdbc driver for sqlserver2000,投向jtds了,现在系统果然稳定不少!
    偶算是领教了微软这个jdbcdriver的好了。(可惜的是,原因还是不明白)

你可能感兴趣的:(tomcat,log4j,jdbc,Microsoft,测试,sqlserver)