论坛首页 Java版 Tomcat

reload几次之后tomcat就挂了

浏览 1100 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-04-11
我说的挂了,是指java进程占了CPU的几乎全部,整个电脑像死机一样,狂满。
一年半前的一个项目也是使用的struts,hibernate,spring,没有这个现象,记不起是从什么时候开始的了。
以前也就忍了,但现在给客户做了一个tomcat的管理工具(因为需要和项目中的一些内容结合在一起所以单独做的),发布几次tomcat就挂了,导致这个工具意义变的不大了。
   
时间:2008-04-11
用的是不是Tomcat 5.x啊?

换用Tomcat 6, Tomcat 5系列webapp classloader有个bug,导致内存不释放,perm gen满了就挂了。

要能重启动也能解决这个问题。
   
0 请登录后投票
时间:2008-04-17
为什么一定要reload呢?
如果做出修改变动的话,就按照你的管理工具,控制tomcat重启动不就可以了吗?
当然,在重启动时就会发生用户暂时无法访问的问题,不过在reload时也是会保这样的错误,虽然错误类型不大一样,
所以,建议你的管理工具就像重新部署一样重启动好了
   
0 请登录后投票
时间:2008-04-22
bigpanda 写道
用的是不是Tomcat 5.x啊?

换用Tomcat 6, Tomcat 5系列webapp classloader有个bug,导致内存不释放,perm gen满了就挂了。

要能重启动也能解决这个问题。


我们现在用的6.0仍然有这个问题
每次不得不被迫打开任务管理其关闭进程
   
0 请登录后投票
时间:2008-04-22
tomcat一直有这个问题,如果不想这样就只能换j2ee服务器,比如glassfish等
   
0 请登录后投票
时间:2008-04-22
Spring有个WeakReference, 如果Reload在短时间内比较频繁, 就容易挂.

GC不能回收对象, 那些Service, POJO什么的.

我用TPTP实验过, 每reload一次, 就多一批Class出来, 一会儿就把PermSize装满了.
   
0 请登录后投票
时间:2008-04-28
perm gen 就是存储代码的空间会满的。
最终造成内存溢出。

我一般测试机更新几次class之后,就要重启一次了。
   
0 请登录后投票
时间:2008-04-29
是有些资源没有释放吧
看看是不是数据库 或者 IO 网络之类的资源没有释放

或者换楼上的应用服务器,个人推荐一下resin,反映速度很快
   
0 请登录后投票
时间:2008-04-30
bigpanda 写道
用的是不是Tomcat 5.x啊?

换用Tomcat 6, Tomcat 5系列webapp classloader有个bug,导致内存不释放,perm gen满了就挂了。

要能重启动也能解决这个问题。
   
0 请登录后投票
论坛首页 Java版 Tomcat

跳转论坛:
JavaEye推荐